Обновление версии инструментальных средств EF 2.1.1

Если я запускаю 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" не дает мне никаких результатов.

Все очень запутывают.

Откуда взялась старая версия, как мне ее избавиться/обновить?

Ответ 1

Хорошо.

Оказывается, это вызвано тем, что второй последний sdk установлен (2.1.301), но где-то на пути global.json, прикрепленный к версии 2.1.300.

Ответ 2

У меня была эта точная проблема. Я попытался удалить папки bin и перестроить, как предложили другие, но это никогда не срабатывало. Наконец, я обновил SDK до версии 2.1.403, и проблема была решена.

Ответ 3

Эта ошибка также отображается, когда вы выбираете другой проект в консоли диспетчера пакетов, а не проект Entity Framework в своем решении.

Ответ 4

Я должен обновить EF Core Tools с помощью консоли диспетчера пакетов:

Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.1

Замените 2.1.1 на 2.1.4 или любую другую версию, указанную в ошибке. Обратите внимание, что я не могу сделать это из пункта меню "Управление пакетами NuGet"!

Ответ 5

install-package Microsoft.EntityFrameworkCore.Tools -Version 2.1.8

сделал это для меня