【发布时间】:2017-09-08 14:24:11
【问题描述】:
我正在将一个新的 .NET Core 应用程序部署到我的服务器。我正在尝试运行 EntityFramework 迁移,因为该项目是使用“代码优先”方法创建的。
要运行的命令是
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>
更新
基本上我已经尝试使用 NUGET 从命令行安装 Microsoft.EntityFrameworkCore.Tools.DotNet:
C:\Program Files (x86)\Jenkins\workspace\api.XXX.com\XXXProject>nuget i 安装 Microsoft.EntityFrameworkCore.Tools.DotNet
然后我收到以下信息:
警告:安装失败。滚回来... 执行 nuget 操作耗时 13.44 秒 包“Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0”的包类型为“D” 项目 'C:\Program Files (x86)\Jenkins\w 不支持的 otnetCliTool' 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
我注意到我的开发机器中的 SDK 版本与服务器上的版本不同
我假设问题是 1.0.1 中没有 Microsoft.EntityFrameworkCore.Tools.DotNet?旧版本会这样是不是很奇怪?
更新 3
所以仅供参考 - 我去了Microsoft Site 尝试下载 SDK 的 1.0.0 版本(因为它似乎没有安装在我的服务器上)。不幸的是,MS 网站似乎强制向我提供 1.0.1 版本(其中不包含我需要的 EF 内容?)。
我尝试将 1.0.0 目录从我的开发箱复制到生产服务器,但这似乎也不起作用。我在这里错过了什么?
【问题讨论】:
标签: c# .net-core entity-framework-core