簡體   English   中英

無法解析包“Microsoft.EntityFrameworkCore.Tools.DotNet”的版本

[英]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 目錄從我的開發箱復制到生產服務器,但這似乎也不起作用。 我在這里缺少什么?

沒有1.0.1版本的Microsoft.EntityFrameworkCore.Tools.DotNet (在撰寫本文時)。 您需要設置Version="1.0.0"才能恢復包。

NuGet列出了可用版本。

更新:

要使用 CLI 工具,您首先需要添加<DotNetCliToolReference>項。

然后在項目目錄下調用dotnet restore ,將包下載到本地緩存,工具就可以使用了, dotnet ef就可以使用了。

在我的情況下(.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM