Если я запустил 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.
Итак, я проверил свой файл 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. Итак, я проверил документы, здесь
И они предполагают, что запись tools в csproj должна иметь этот пакет:
<ItemGroup>
<DotNetCliToolReference Include = "Microsoft.EntityFrameworkCore.Tools.DotNet" Version = "2.1.1" />
</ItemGroup>
Теперь 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 -g» не дал мне никаких результатов.
Все очень запутанно.
Откуда взялась старая версия, как от нее избавиться / обновить?
У меня есть это, или, по крайней мере, второй последний (2.1.301). Но ваш комментарий побудил меня проверить наличие global.json, что оказалось проблемой. tnx.
@Flores Спасибо, что помогли мне решить проблему
Привет, ребята, извините за возвращение, но у меня такая же проблема, и в моем решении нет файла global.json. Где находится этот файл?
Если это не на вашем пути, у вас другая проблема. Чтобы убедиться, что введите dotnet --version в папке вашего проекта





ОК.
Оказывается, это вызвано тем, что установлен второй последний sdk (2.1.301), но где-то на пути к версии 2.1.300 привязан global.json.
Как вы избавились от этого предупреждения? У меня sdk v 2.1.302
Если вы сделаете dotnet --version на пути к вашему приложению, будет ли там указано также 2.1.302?
Нет, когда я запускаю его, я получаю 2.1.403, но все же мне отображается предупреждение о том, что EF Core Tools устарели.
У меня есть эти проблемы, и сейчас у меня 2.1.400
... "но где-то на пути" ... Где-то на каком пути? Путь решения? Проект? Visual Studio установить ??? Не могли бы вы уточнить, что вы имеете в виду?
Неважно. Я решил проблему, установив последнюю версию Microsoft.EntityFrameworkCore.Tools.
Google для global.json, и вы найдете ответ: либо решение, либо путь к проекту.
У меня была именно эта проблема. Я попытался удалить папки bin и перестроить, как предлагали другие, но это никогда не сработало. Наконец, я обновил SDK до версии 2.1.403, и проблема была решена.
Эта ошибка также отображается, когда вы выбираете другой проект в Консоль диспетчера пакетов, а не в проекте Entity Framework в вашем решении.
install-package Microsoft.EntityFrameworkCore.Tools -Version 2.1.8
сделал это для меня
у меня это сработало, просто не забудьте запустить его от имени администратора.
Установите последняя версия .NET Core SDK.