Ответ 1
Хорошо.
Оказывается, это вызвано тем, что второй последний sdk установлен (2.1.301), но где-то на пути global.json, прикрепленный к версии 2.1.300.
Если я запускаю dotnet ef add testmigration
Я получаю это предупреждение: 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.
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.
Поэтому я проверил файл 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>
Что выглядит правильно для меня, версия 2.1.1. Поэтому я проверил документы, здесь
И они предполагают, что для ввода инструментов в csproj необходимо иметь этот пакет:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.1" />
</ItemGroup>
Теперь dotnet restore
в dotnet restore
жалуется, что:
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).
И dotnet ef --version
прежнему отображает старый.
Итак, следующее, что я делаю, это удалить запись в csproj
вообще, теперь dotnet ef
все еще работает, но все же дает мне старую версию.
Поэтому я решил, что как-то должен обновить глобальные инструменты dotnet для EF. Но список "dotnet tools -g" не дает мне никаких результатов.
Все очень запутывают.
Откуда взялась старая версия, как мне ее избавиться/обновить?
Хорошо.
Оказывается, это вызвано тем, что второй последний sdk установлен (2.1.301), но где-то на пути global.json, прикрепленный к версии 2.1.300.
У меня была эта точная проблема. Я попытался удалить папки bin и перестроить, как предложили другие, но это никогда не срабатывало. Наконец, я обновил SDK до версии 2.1.403, и проблема была решена.
Эта ошибка также отображается, когда вы выбираете другой проект в консоли диспетчера пакетов, а не проект Entity Framework
в своем решении.
Я должен обновить EF Core Tools с помощью консоли диспетчера пакетов:
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.1
Замените 2.1.1 на 2.1.4 или любую другую версию, указанную в ошибке. Обратите внимание, что я не могу сделать это из пункта меню "Управление пакетами NuGet"!
install-package Microsoft.EntityFrameworkCore.Tools -Version 2.1.8
сделал это для меня