Подтвердить что ты не робот

Версия для пакета `Microsoft.EntityFrameworkCore.Tools.DotNet` не может быть решена

Я развертываю новое приложение .NET Core на своем сервере. Я пытаюсь запустить миграцию EntityFramework, поскольку проект был создан с использованием метода "code-first".

Команда для запуска

Обновление базы данных dotnet ef

Миграции работают локально с помощью visual studio без проблем, однако на сервере я получаю сообщение об ошибке:

Версия для пакета Microsoft.EntityFrameworkCore.Tools.DotNet не может быть разрешена.

Версия на моей машине разработки DotNet 1.0.0

Версия на моем сервере DotNet 1.0.1

В моем проекте используется файл .csproj(а не project.json, который больше не используется).

Я добавил ссылку на файл csproj, но независимо от версии я все равно получаю вышеуказанную ошибку.

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.1" />
  </ItemGroup>

Обновление

В основном я попытался установить Microsoft.EntityFrameworkCore.Tools.DotNet из командной строки с помощью NUGET:

C:\Program Files (x86)\Jenkins\workspace\api.XXX.com\XXXProject > nuget я nstall Microsoft.EntityFrameworkCore.Tools.DotNet

Затем я получаю следующее:

ПРЕДУПРЕЖДЕНИЕ. Ошибка установки. Откат... Выполнение nuget-действий заняло 13.44 сек. Пакет 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0' имеет тип пакета 'D otnetCliTool ', который не поддерживается проектом' C:\Program Files (x86)\Jenkins\w orkspace\api.XXX.com\XXXProject'.`

Тогда, если я запустил команду dotnet ef, я получаю следующее:

C:\Program Files (x86)\Jenkins\workspace\api.desully.com\deSullyAPI_Core > база данных обновлений dotnet ef

Версия для пакета Microsoft.EntityFrameworkCore.Tools.DotNet не может быть решена.

Обновление # 2

Я заметил, что мой dev-машина имеет в нем разные версии SDK, чем версия на сервере

Dev Box введите описание изображения здесь

Производственная коробка введите описание изображения здесь

Я предполагаю, что проблема в том, что 1.0.1 не имеет Microsoft.EntityFrameworkCore.Tools.DotNet в нем? Разве не странно, что старая версия делает?

Обновление 3

Итак, fyi - я пошел на сайт Microsoft, чтобы попытаться загрузить версию 1.0 SDK (так как это не показалось для установки на моем сервере). К сожалению, сайт MS, похоже, заставляет меня загружать версию 1.0.1 (которая не содержит нужный мне EF файл?).

Я попытался скопировать файл 1.0.0 из моего dev-модуля на рабочий сервер, но это тоже не сработало. Что мне здесь не хватает?

4b9b3361

Ответ 1

Нет версии 1.0.1 Microsoft.EntityFrameworkCore.Tools.DotNet (на момент написания). Вам нужно установить Version="1.0.0", чтобы восстановить пакет.

Доступные версии перечислены в NuGet.

Update:

Чтобы использовать инструменты CLI, вам сначала нужно добавить элементы <DotNetCliToolReference>, как вы уже это сделали.

Затем вы вызываете dotnet restore в каталог проекта для загрузки пакетов в локальный кеш, тогда инструмент становится пригодным для использования и dotnet ef может использоваться.

Ответ 2

Что помогло в моем случае (.NET Core 2.0.3), так это выпустить:

dotnet add package Microsoft.EntityFrameworkCore.Design

А потом

dotnet restore

Это установило Microsoft.EntityFrameworkCore.Tools.DotNet в правильной версии