Необходимо обновить EF Core Tools - PullRequest
0 голосов
/ 31 августа 2018

Когда я использую инструменты dotnet ef в консоли диспетчера пакетов VS 2017, я получаю предупреждение о необходимости обновления инструментов EF Core:

PM> dotnet ef migrations list -s ../RideMonitorSite

The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.2-rtm-30932'. Update the tools for the latest features and bug fixes.
20180831043252_Initial

Но в моем файле csproj есть эта запись:

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.2" />
  </ItemGroup>

Я подтвердил, что установленная версия устарела:

PM> dotnet ef --version
Entity Framework Core .NET Command-line Tools
2.1.1-rtm-30846

Так что мне делать, чтобы обновить инструменты? Кстати, я видел в других ответах, что устаревший файл global.json может вызвать эту проблему. Но у меня нет ни одного файла global.json в решении.

Ответы [ 8 ]

0 голосов
/ 17 июля 2019

Решение, которое сработало для меня, заключается в запуске следующих команд в консоли диспетчера пакетов:

PM> Install-Package Microsoft.EntityFrameworkCore -Version 2.1.11
PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.11

Убедитесь, что версия совпадает с версией в сообщении об ошибке. В моем случае я получил следующую ошибку:

The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.11-servicing-32099'. Update the tools for the latest features and bug fixes.

Проверьте версии, доступные на следующем сайте: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/

0 голосов
/ 24 ноября 2018

Попробуйте это: Install-Package Microsoft.EntityFrameworkCore.Tools

Если проблема все еще возникает, выполните это также: Пакет обновлений Microsoft.EntityFrameworkCore.Tools

0 голосов
/ 03 июня 2019

Выполнение шагов в этом документе помогло мне решить проблему - https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-entityframework-core-scaffold-example.html

Создание базы данных с помощью консоли диспетчера пакетов в Visual Studio

  • Откройте Visual Studio и создайте новое консольное приложение (.NET Core) для C #.
  • Добавьте пакет MySQL NuGet для EF Core с помощью консоли диспетчера пакетов. Например, используйте следующую команду для добавления пакета MySql.Data.EntityFrameworkCore v8.0.13:

Install-Package MySql.Data.EntityFrameworkCore -Version 8.0.13

Важно

Версия (например, -Version 8.0.13) должна соответствовать фактической версии Connector / NET, которую вы используете. Для получения информации о текущей версии.

  • Установите следующие пакеты NuGet, выбрав любой из них. Консоль менеджера или управление пакетами NuGet для решения с помощью инструментов а затем меню диспетчера пакетов NuGet:

    Microsoft.EntityFrameworkCore.Design
    
    EF Core 1.1 only: Also add the MySql.Data.EntityFrameworkCore.Design package.
    
    Microsoft.EntityFrameworkCore.Tools version 1.1.6 (for EF Core 1.1) and Microsoft.EntityFrameworkCore.Tools version 2.0.3 (for EF Core 2.0)
    Note
    
    The .NET tools are included in the .NET Core 2.1 SDK and not required or supported for EF Core 2.1. If this is an upgrade, remove the reference to that package from the .csproj file (version 2.0.3 in this example) :
    
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
    

    Откройте Консоль диспетчера пакетов и введите в командной строке следующую команду для создания сущностей и DbContext для базы данных sakila (отрегулируйте значения строки подключения в соответствии с вашими настройками для пользователя = и пароль = опции):

Scaffold-DbContext "server = localhost; порт = 3306; пользователь = root; пароль = mypass; база данных = sakila" MySql.Data.EntityFrameworkCore -OutputDir sakila -f

Visual Studio создает новую папку sakila внутри проекта, которая содержит все таблицы, сопоставленные с сущностями, и файл sakilaContext.cs.

Несмотря на то, что в инструкциях Oracle сказано, что Microsoft.EntityFrameworkCore.Tools не требуется для EF Core 2.1, я установил версию 2.2.0, совместимую с EF 2.2

0 голосов
/ 13 октября 2018
  • Игнорировать проблему
  • Не обновляйте свой
  • В моем случае я перешел к «Update-Database -Context MyElementContext», и теперь все работает нормально.

Я нашел это в книге «Программирование ASP.NET Core» Дино Эспозито.

'Примечание. Эта версия инструментария CLI отличается от версии среды выполнения .NET Core, которую будет использовать приложение. Версия среды выполнения указана в файле проекта, и вы можете удобно редактировать ее в пользовательском интерфейсе IDE по вашему выбору. Если вы хотите вместо этого отредактировать файл проекта вручную, то это так же просто, как редактировать XML-файл .csproj и изменить значение элемента TargetFramework. Значение относится к прозвищу, которое идентифицирует версию (например, netcoreapp2.0). '

0 голосов
/ 08 октября 2018

Моим решением было установить инструмент dotnet-ef от Microsoft https://www.nuget.org/packages/dotnet-ef. Он использует те же команды, но без предупреждений. Изменение заключается в использовании dotnet-ef вместо dotnet ef.

0 голосов
/ 06 сентября 2018

Я не мог найти, как конкретно обновить пакет, но в консоли диспетчера пакетов я запустил «пакет обновления». Он просматривал и обновлял все пакеты, на которые есть ссылки в проекте, включая EF Core Tools. Это может быть не идеально для вас, так как это может обновить пакеты, которые вы не хотели.

0 голосов
/ 02 сентября 2018

Я передал эту проблему команде разработчиков на github . Оказывается, это известная проблема в текущих пакетах инструментов или пакетов nuget, которые загружаются при создании сайта AspNet Core на основе EF Core. Его планируется исправить в следующем выпуске.

Пока что обходной путь - просто игнорировать предупреждение.

Также предлагается другой обходной путь, включающий настройку файла csproj для явного определения версии метапакета AspNet Core - до 2.1.3, когда я пишу это, - но я не смог заставить этот подход работать ; Я все еще получал предупреждающее сообщение.

0 голосов
/ 31 августа 2018

Установите новую версию .NET Core SDK v2.1.401 и снова проверьте> dotnet ef --version. У меня была та же проблема, и в моем случае это сработало. Кроме того, вам не нужно добавлять Microsoft.EntityFrameworkCore.Tools.DotNet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...