Ich verwende Visual Studio 2015 und Dotnet Core und versuche, ein EF Core Code First-Projekt mit Sqlite und diese Dokumentation/dieses Tutorial zu entwickeln, die auch Sqlite => NET Core verwendet. Neue Datenbank
Wenn ich versuche, eine erste Migration von der Befehlszeile aus hinzuzufügen (ich bin in den Ordner, in dem sich mein Datenmodellprojekt befindet, auf CD-ROM gespeichert), geben Sie den folgenden Befehl aus
dotnet ef migrations add InitialMigration
... bekomme ich den folgenden Fehler.
Es wurde kein Projekt gefunden. Ändern Sie das aktuelle Arbeitsverzeichnis oder verwenden Sie die Option --project.
Ich habe sogar versucht, die --project
-Option so zu verwenden.
> dotnet --project "C:\Shiva\EF\EFCFSqlite.Data.xproj" ef migrations add InitialMigration
aber das gibt den folgenden Fehler.
Unknown option: --project
.NET Command Line Tools (1.0.0-preview2-003131)
Usage: dotnet [Host-options] [command] [arguments] [common-options]
Ich habe festgestellt, dass die Dokumentation eine .csproj
-Datei verwendet, während mein Projekt eine xproj
-Datei anzeigt. Die Dokumente erwähnen auch, dass project.json
nicht mehr verwendet wird :(
Hier ist meine project.json
-Datei.
{
"version": "1.0.0-*",
"dependencies": {
"Microsoft.EntityFrameworkCore.Sqlite": "1.1.1",
"Microsoft.EntityFrameworkCore.Sqlite.Design": "1.1.1",
"NETStandard.Library": "1.6.1"
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet":"1.0.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
Was hat sich verändert? Haben wir keine andere Wahl, als Installieren von Visual Studio 2017 und von vorne zu beginnen? Wird project.json
und all das andere Zeug nicht mehr geehrt?
Anstatt:
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet":"1.0.0"
},
versuchen:
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": {
"version": "1.0.0-preview3-final"
}},
manchmal müssen Sie das aktuelle Verzeichnis in Konsole/Terminal ändern, zB:
PM> cd E:\Projects\CrossTest\
PM> dotnet ef migrations add InitialMigration
und Richten Sie Ihre Paketversionen aus . Verwenden Sie entweder die Pakete preview1 oder preview2 . Eine Kombination davon wird nicht unterstützt.
Microsoft.EntityFrameworkCore.Tools
hinzu.Microsoft.EntityFrameworkCore.Design
hinzu.Edit
aus, und fügen Sie der ItemGroup
, die PackageReference
-Knoten enthält, Folgendes hinzu<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
(Die neueste Version finden Sie im Nuget Package Manager.)
cd {path where your csproj file resides}
ein (dies ist wichtig)dotnet ef migrations add InitialMigration
ein.Ich hatte gerade ein ähnliches Problem. Behoben durch Downgrade auf 1.0.0-preview3-final
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final",
}
--project param in --startup-project ändern und ändern
dotnet ef --startup-project <PATH_TO_PROJECT_DIRECTORY> migrations add <MIGRATION_NAME>
In global.json habe ich auch die Version auf runtergestuft
"sdk": {
"version": "1.0.0-preview2-003131"
}
Dies kann eine temporäre Problemumgehung sein, bevor Sie zu csproj migrieren.
Der Befehl dotnet-ef wurde verschoben.
Sie müssen einen Verweis auf .__ hinzufügen. Microsoft.EntityFrameworkCore.Tools.DotNetUNDMicrosoft.EntityFrameworkCore.Design an Ihre Abhängigkeiten in project.json, fügen Sie dann Microsoft.EntityFrameworkCore.Tools.DotNet zum Tools-Abschnitt hinzu, und Sie sollten fertig sein.
Zitiert aus: http://errummwelluhh.blogspot.com