J'utilise Visual Studio 2015 et CoreNet et j'essaie de développer un projet EF Core Code First à l'aide de Sqlite et de cette documentation/didacticiel, qui utilise également Sqlite => NET Core - Nouvelle base de données
Lorsque j'essaie d'ajouter une migration initiale à partir de la ligne de commande (je suis CD-ed dans le dossier dans lequel se trouve mon projet de modèle de données) en lançant la commande suivante
dotnet ef migrations add InitialMigration
... Je reçois l'erreur suivante.
Aucun projet n'a été trouvé. Changez le répertoire de travail en cours ou utilisez l'option --project.
J'ai même essayé d'utiliser l'option --project
comme ça.
> dotnet --project "C:\Shiva\EF\EFCFSqlite.Data.xproj" ef migrations add InitialMigration
mais cela donne l'erreur suivante.
Unknown option: --project
.NET Command Line Tools (1.0.0-preview2-003131)
Usage: dotnet [Host-options] [command] [arguments] [common-options]
J'ai remarqué que la documentation utilise le fichier .csproj
alors que mon projet affiche un fichier xproj
. De plus, les docs mentionnent quelque chose sur le fait de ne plus utiliser project.json
:(
Voici mon fichier project.json
.
{
"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"
}
}
Qu'est ce qui a changé? N'avons-nous pas d'autre choix que Installer Visual Studio 2017 et recommencer à zéro? project.json
et tous ces autres éléments ne sont-ils plus respectés?
Au lieu de:
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet":"1.0.0"
},
essayer:
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": {
"version": "1.0.0-preview3-final"
}},
vous avez parfois besoin de changer le répertoire actuel dans console/terminal, par exemple:
PM> cd E:\Projects\CrossTest\
PM> dotnet ef migrations add InitialMigration
et Alignez les versions de vos packages . Utilisez les packages preview1 ou preview2 . Un mélange de ceux-ci ne sont pas supportés.
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
Edit
, puis ajoutez ce qui suit à la ItemGroup
qui contient PackageReference
noeuds<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
(Vous pouvez trouver la dernière version en la trouvant dans le gestionnaire de paquets Nuget)
cd {path where your csproj file resides}
(c'est important)dotnet ef migrations add InitialMigration
Juste face à un problème similaire. Fixé en rétrogradant à 1.0.0-preview3-final
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final",
}
et changer --project param en --startup-project
dotnet ef --startup-project <PATH_TO_PROJECT_DIRECTORY> migrations add <MIGRATION_NAME>
Dans global.json, j’ai également abaissé la version à
"sdk": {
"version": "1.0.0-preview2-003131"
}
Il peut s’agir d’une solution temporaire avant de migrer vers csproj.
La commande dotnet-ef a été déplacée.
Vous devrez ajouter une référence à (Microsoft.EntityFrameworkCore.Tools.DotNet} _ ETMicrosoft.EntityFrameworkCore.Design à vos dépendances dans project.json, puis ajoutez Microsoft.EntityFrameworkCore.Tools.DotNet à la section outils et vous devriez être prêt à partir.
Cité de: http://errummwelluhh.blogspot.com