简体   繁体   中英

Version for package `Microsoft.EntityFrameworkCore.Tools.DotNet` could not be resolved

I am deploying a new .NET Core application to my server. I'm trying to run the EntityFramework migration, as the project was created using the "code-first" method.

The command to be run is

dotnet ef database update

Migrations work locally using visual studio without issue, however, on the server, I receive the error;

Version for package Microsoft.EntityFrameworkCore.Tools.DotNet could not be resolved.

The version on my development machine of DotNet is 1.0.0

The version on my server of DotNet is 1.0.1

My project uses the .csproj file (not project.json, which is no longer used it seems).

I have added the reference to the csproj file, but regardless of the version I still get the above error.

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

Update

Basically I have tried installing the Microsoft.EntityFrameworkCore.Tools.DotNet from the command line using NUGET:

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

Then I receive the following:

WARNING: Install failed. Rolling back... Executing nuget actions took 13.44 sec Package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0' has a package type 'D otnetCliTool' that is not supported by project 'C:\\Program Files (x86)\\Jenkins\\w orkspace\\api.XXX.com\\XXXProject'.`

Then if I run the dotnet ef command, I get this:

C:\\Program Files (x86)\\Jenkins\\workspace\\api.desully.com\\deSullyAPI_Core>dotnet ef update database

Version for package Microsoft.EntityFrameworkCore.Tools.DotNet could not be re solved.

Update #2

I noticed that my dev machine has different SDK versions in it than the version on the server

Dev Box在此处输入图片说明

Production Box在此处输入图片说明

I'm assuming that the problem is that 1.0.1 doesn't have Microsoft.EntityFrameworkCore.Tools.DotNet in it? Isn't it strange that the older version does?

Update 3

So fyi - I went to the Microsoft Site to try to download the 1.0.0 version of the SDK (since it didn't seem to be installed on my server). Unfortunately, the MS site seems to force feed me the 1.0.1 version (which doesn't contain the EF stuff I need?).

I tried copying the 1.0.0 dir from my dev box to the production server, but that also didn't seem to work. What am I missing here?

There isn't a 1.0.1 version of Microsoft.EntityFrameworkCore.Tools.DotNet (at the time of writing). You need to set Version="1.0.0" in order to restore the package.

The available versions are listed on NuGet .

Update:

To use CLI tools, you first need to add <DotNetCliToolReference> items as you have already have.

Then you call dotnet restore in the directory of the project to download the packages to your local cache, then the tool becomes usable and dotnet ef can be used.

What helped in my case(.NET Core 2.0.3) was to issue:

dotnet add package Microsoft.EntityFrameworkCore.Design

And then

dotnet restore

This installed the Microsoft.EntityFrameworkCore.Tools.DotNet in a correct version

在我的情况下,使用包括 Microsoft.EntityFrameworkCore.Tools.DotNet Version="2.1.0-preview1-final 在内的 cli,然后在 dotnet restore 之后

Change Microsoft.EntityFrameworkCore.Tools.Dotnet version to an available version, then run this on the CLI: dotnet restore . Then try again.

要在 dotnet 核心中启用迁移: 1 打开命令提示符并将目录更改为 .csproj 位置 2 运行命令“dotnet restore”#这将下载并在该位置使下一个命令可用 3 完成后,运行命令“dotnet ef” '

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM