Si je lance dotnet ef add testmigration
Je reçois cet avertissement: The EF Core tools version '2.1.0-rtm-30799' is older than that of the runtime '2.1.1-rtm-30846'. Update the tools for the latest features and bug fixes.
J'ai donc vérifié mon fichier csproj:
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
</ItemGroup>
Ce qui me semble correct, version 2.1.1. J'ai donc vérifié la documentation, ici
Et ils suggèrent que l'entrée des outils dans le fichier csproj nécessite ce paquet:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.1" />
</ItemGroup>
Maintenant, un dotnet restore
se plaint que:
warning : The tool 'Microsoft.EntityFrameworkCore.Tools.DotNet' is now included in the .NET Core SDK. Information on resolving this warning is available at (https://aka.ms/dotnetclitools-in-box).
Et dotnet ef --version
répertorie toujours l'ancien.
La prochaine chose que je fais est donc de supprimer l’entrée de la csproj
au total, maintenant dotnet ef
fonctionne toujours, mais me donne toujours l’ancienne version.
J'ai donc pensé que je devais mettre à jour les outils globaux dotnet pour EF. Mais une "liste d'outils dotnet -g" ne me donne aucun résultat.
Tout très déroutant.
D'où vient l'ancienne version, comment puis-je m'en débarrasser/la mettre à jour?
D'accord.
Il s'avère que cela est dû à l'installation de la dernière version du sdk (2.1.301), mais quelque part dans le chemin un global.json épinglé à la version 2.1.300.
J'avais ce problème exact. J'ai essayé de supprimer des dossiers bin et de reconstruire comme d'autres l'ont suggéré, mais cela n'a jamais fonctionné. Enfin, j'ai mis à jour le SDK à 2.1.403 et le problème a été résolu.
Cette erreur apparaît également lorsque vous sélectionnez un autre projet sur Package Manager Console plutôt que le projet Entity Framework
de votre solution.