2016-12-02 4 views
2

Ich versuche, die Grundlagen von ASP.NET-Core mit this tutorial zu lernen:"Keine ausführbare passenden Befehl gefunden "Dotnet-ef""

  1. Ich habe eine ASP.NET Core-Web-Anwendung erstellt
  2. I es mit Anweisung von here

Jetzt aktualisiert haben, ich versuche, die Datenbankmigration zu Setup mit dotnet ef migrations add Initial von Eingabeaufforderung innerhalb Projektordner (wo project.json befindet):

No executable found matching command "dotnet-ef"

Ich habe project.json geändert, so dass Dotnet-ef funktioniert:

"tools": { 
... 
"Microsoft.EntityFrameworkCore.Tools": { 
    "version": "1.0.0-preview1-final",     
    "imports": [ 
    "portable-net45+win8+dnxcore50", 
    "portable-net45+win8" 
    ] 
} 

Nun wird die Generation mit dem folgenden Fehler fehl:

The specified framework 'Microsoft.NETCore.App', version '1.0.0-rc2-3002702' was not found. - Check application dependencies and target a framework version installed at: C:\Program Files\dotnet\shared\Microsoft.NETCore.App - The following versions are installed: 1.0.0 1.0.1 1.1.0 - Alternatively, install the framework version '1.0.0-rc2-3002702'

Ok, macht es Sinn, da Microsoft.EntityFrameworkCore.Tools 1.0.0-preview1-final auf der alten Version basiert, die in dem Fehler erwähnt wird, wie in der project.lock.json-Datei gefunden wird.

Ich will nicht Herabstufung auf, so habe ich die neueste Version von Microsoft.EntityFrameworkCore.Tools ich finden konnte:

"Microsoft.EntityFrameworkCore.Tools": { 
    "version": "1.1.0-preview4-final", 
    "imports": [ 
    "portable-net45+win8+dnxcore50", 
    "portable-net45+win8" 
    ] 
}, 

Dadurch wird führen zum gleichen Fehler:

No executable found matching command "dotnet-ef"

Wie kann ich es in Version 1.1 funktionieren lassen?

Andere Kontextinformationen, die nützlich sein könnten:

OS: Windows 7 x64 VS: 2015 Community Edition Andere Teile von project.json:

"frameworks": { 
"netcoreapp1.1": { 
    "imports": [ 
    "portable-net45+win8+dnxcore50", 
    "portable-net45+win8" 
    ] 
} 
}, 

"runtimes": { 
"win7-x64": {} 
}, 
+0

Mögliche Duplikat [# 37276882] (https://stackoverflow.com/a/45765523/1233379): in kurzen Worten, Sie müssen manuell auf Ihre Projektkonfiguration bearbeiten Datei und fügen Sie einen Verweis auf die Tools/Tools.DotNet-Pakete hinzu (wie VS2015/VS2017 wird das nicht automatisch tun). Für weitere Informationen, [lesen Sie hier] (http://www.ryadel.com/en/no-executable-found-matching-command-dotnet-ef-error-in-visual-studio-2017-and-net-core -2-vs2017-Entity-Framework /). – Darkseal

Antwort

6

UPDATE [30/3/2017]

Das neue Paket ist

Install-Package Microsoft.EntityFrameworkCore.Tools 

ORIGINAL

Versuchen Hinzufügen

"tools": { 
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4" 
    } 

Zusätzlich ist hier eine Anleitung zum Einrichten von .Net-Core 1.1.0 mit EF-Core 1.1.0

https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite

+0

Es hat funktioniert. Ich vermisste auch "Microsoft.EntityFrameworkCore.Tools": {"version": "1.1.0-preview4-final" ' – Alexei

+0

es hat nicht funktioniert, versuchte mit der Bearbeitung von csproj-Datei – Salim

1

Grierson ‚s Antwort ist in Ordnung, aber für die Zukunft werde ich den gesamten Prozess umfassen, bis ich es Arbeit gemacht:

1) Tools.DotNet bereits in der akzeptierten Antwort vorgeschlagen

"tools": { 
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4" 
    } 

Ran und den gleichen Befehl erhalten:

Cannot execute this command because Microsoft.EntityFrameworkCore.Design is not installed. Install the version of that package that matches the installed version of Microsoft.EntityFrameworkCore and try again.

Jetzt

2) Hinzugefügt

//EF Core 
"Microsoft.EntityFrameworkCore.Tools": { 
    "version": "1.1.0-preview4-final", 
    "type": "build" 
} 

3), der Fehler ist:

No parameterless constructor was found on 'ApplicationDbContext'. Either add a parameterless constructor to 'Application DbContext' or add an implementation of 'IDbContextFactory' in the same assembly as 'ApplicationDbC ontext'.

Ich habe gewählt, um die Schnittstelle zu implementieren. Eine Möglichkeit:

public ApplicationDbContext Create(DbContextFactoryOptions options) 
{ 
    var builder = new DbContextOptionsBuilder<ApplicationDbContext>(); 
    builder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=Movies;Trusted_Connection=True;MultipleActiveResultSets=true"); 
    return new ApplicationDbContext(builder.Options); 
} 

Der gleiche Fehler tritt auf, wenn dotnet ef migrations add Initial

4 läuft) Ich habe einen Standard-Konstruktor für ApplicationDbContext Klasse hinzugefügt

Jetzt kann ich die Migration hinzufügen.

0

Ich hatte das gleiche Problem.

, dass es für mich gelöst ist

"tools": { 
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final" 
}, 
Verwandte Themen