![](/img/trans.png)
[英]Package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0-msbuild2-final' has a package type 'DotnetCliTool' that is not supported by project
[英]Version for package `Microsoft.EntityFrameworkCore.Tools.DotNet` could not be resolved
我正在向我的服務器部署一個新的 .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 安裝 Microsoft.EntityFrameworkCore.Tools.DotNet
然后我收到以下信息:
警告:安裝失敗。 回滾... 執行 nuget 操作需要 13.44 秒 Package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0' has a package type 'D otnetCliTool' 項目不支持'C:\\Program Files (x86)\\Jenkins\\工作空間\\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
所以僅供參考 - 我去微軟網站嘗試下載 SDK 的 1.0.0 版本(因為它似乎沒有安裝在我的服務器上)。 不幸的是,MS 站點似乎強制向我提供 1.0.1 版本(其中不包含我需要的 EF 內容?)。
我嘗試將 1.0.0 目錄從我的開發箱復制到生產服務器,但這似乎也不起作用。 我在這里缺少什么?
在我的情況下(.NET Core 2.0.3)有幫助的是發出:
dotnet add package Microsoft.EntityFrameworkCore.Design
進而
dotnet restore
這安裝了正確版本的Microsoft.EntityFrameworkCore.Tools.DotNet
在我的情況下,使用包括 Microsoft.EntityFrameworkCore.Tools.DotNet Version="2.1.0-preview1-final 在內的 cli,然后在 dotnet restore 之后
將Microsoft.EntityFrameworkCore.Tools.Dotnet
版本更改為可用版本,然后在 CLI 上運行: dotnet restore
。 然后再試一次。
要在 dotnet 核心中啟用遷移: 1 打開命令提示符並將目錄更改為 .csproj 位置 2 運行命令“dotnet restore”#這將下載並在該位置使下一個命令可用 3 完成后,運行命令“dotnet ef” '
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.