簡體   English   中英

檢測到 package 降級:Microsoft.NETCore.App 從 2.1.3 到 2.1.0

[英]Detected package downgrade: Microsoft.NETCore.App from 2.1.3 to 2.1.0

我嘗試將我的 .net 解決方案從 .NET Core 1.1 更新到 .NET Core 2.1。 我里面有幾個 .NET 核心和 .NET 標准項目,它們相互引用並引用另一個 NuGet 包。 更新“do.net resore”和“do.net build”命令后工作正常,但是當我嘗試從 visual studio 構建我的解決方案時,出現此錯誤:

錯誤 NU1605 檢測到 package 降級:Microsoft.NETCore.App 從 2.1.3 到 2.1.0。 直接從項目引用 package 到 select 一個不同的版本。

我看到我的一些項目確實有 SDK 對 Microsoft.NETCore.App v2.1.0 的引用,其中一些是 v.2.1.3。 設置 RuntimeFrameworkVersion 並將此 package 添加到依賴項中顯式不起作用。

我該如何處理?

UPD: do.net --info:

.NET Core SDK (reflecting any global.json):  Version:   2.1.401  Commit:    91b1c13032

Runtime Environment:  OS Name:     Windows  OS Version:  10.0.17134  OS Platform: Windows  RID:         win10-x64  Base Path:   C:\Program Files\dotnet\sdk\2.1.401\

Host (useful for support):   Version: 2.1.3   Commit:  124038c13e

.NET Core SDKs installed:
  1.1.10 [C:\Program Files\dotnet\sdk]
  2.0.0 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.100 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.400 [C:\Program Files\dotnet\sdk]
  2.1.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:   Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]   Microsoft.AspNetCore.All 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]   Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]   Microsoft.AspNetCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]   Microsoft.NETCore.App
1.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App 1.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App
2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App
2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App
2.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:   https://aka.ms/dotnet-download

UPD:如果我從 .csproj 文件中刪除此行,問題就會以某種方式消失:

<RuntimeIdentifier>win7-x64</RuntimeIdentifier>

能有關系嗎?

我和你有類似的問題。 指定運行時標識符時無法發布我的項目。

我開始工作的解決方案是將以下行添加到 *.csproj

<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>

添加該行后,項目將正確發布。

以下鏈接引用了 2.1.1 和 2.1.0 之間的降級問題,但解決方案的工作原理相同。

https://github.com/dotnet/cli/issues/9624

我在 csproj 文件中缺少一個版本。

添加版本解決了這個問題。

在此處輸入圖片說明

在我的 Windows 機器上將 .net core SDK 從 .net core 2.1.0 更新到 .net core 2.2.0 后,我遇到了同樣的問題。 我無法構建項目,並在檢測到包降級時出現構建錯誤:Microsoft.AspNetCore.Razor.Design 從 2.2.0 到 2.1.0。

我已經通過更新 Microsoft.AspNetCore.Razor.Design 的 nuget 包解決了這個問題

在添加對MySQL.Data的引用后,我剛剛遇到了同樣的問題。

唯一的解決方案是在 .csproj 文件中明確定義受影響引用的版本:

<PackageReference Include="System.Diagnostics.Debug" Version="4.3.0" />
<PackageReference Include="System.Runtime.Extensions" Version="4.3.0" />
<PackageReference Include="System.Globalization" Version="4.3.0" />
<PackageReference Include="System.Threading" Version="4.3.0" />
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
<PackageReference Include="System.IO.FileSystem" Version="4.3.0" />

我也有這個問題。 最終為我修復的是從“程序”控制面板卸載 .NET SDK 2.1.3。 或者我基本上不得不卸載我的項目試圖使用的任何更高版本的相關 SDK 庫。

我的這個問題版本(我認為)是由安裝在 Jenkins 構建服務器上的實際 .NET Core 版本與具有模糊引用的單元測試項目的組合引起的。

我知道,在理想的世界中,dotnet 不希望在 csproj 中聲明 AspNetCore 的版本 - 在構建過程中提供最大的靈活性:

<PackageReference Include="Microsoft.AspNetCore.App" />

但是,在構建服務器上編譯主項目時(第一次),它選擇使用 2.1.6 作為 AspNetCore 版本。 然后它嘗試編譯測試項目,並且該項目的最低版本為“2.1.1”,因此構建過程會嘗試降級,然后在構建失敗時中止構建。

我從測試項目中刪除了“2.1.1”最低版本,但隨后測試項目不會在本地構建,因為它無法明確解決依賴關系。 在多次 NuGet 包升級/降級之后沒有任何樂趣,所以選擇強制“2.1.6”最低版本以便與構建服務器保持一致。

這仍然無法在本地正確解析所有依賴項,最終也強制使用 NetCore 的最低版本:

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.6" />
<PackageReference Include="Microsoft.NetCore.App" Version="2.1.6" />

現在一切都在本地和 Jenkins 構建服務器上構建!

安裝新版本的 .Net Core(2.0 到 2.1)后,我也遇到了這個問題。 下面的鏈接給了我一個導致問題的提示。

https://github.com/dotnet/cli/issues/9433

我的解決方案是將項目的目標框架更改為最新安裝的 .Net Core 版本。

Project Properties > Application > Target Framework

對於未來的讀者。

一大早,我的代碼就在構建中。

然后我開始收到此錯誤:

Error   NU1605  Detected package downgrade: Microsoft.Extensions.Logging from 3.1.1 to 2.1.1. Reference the package directly from the project to select a different version.

我在 2 個程序集 csprojs 上得到了它。

MyCompany.MyProject.SomeLibraryONE 
MyCompany.MyProject.SomeLibraryTWO

所以當然,我開始追蹤“Microsoft.Extensions.Logging”。

但后來我想起了“今天早上它起作用了”,我回溯了我的變化。

我發現了一個新包(nuget import)添加進來

MyCompany.MyProject.SomeLibraryTHREE

(一和二引用了三)

這是“新”行:

<PackageReference Include="Microsoft.Extensions.Http" Version="3.1.1" />

所以我看了又看,但這是導入“Microsoft.Extensions.Http”包的唯一地方。

做什么?

從記憶中,我只是記得我有很多“3.1.0”包導入,但沒有 3.1.1。

其他包導入的示例(例如):

<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" />

長話短說………………我更改了新的包導入(新導入是我的代碼損壞的主要嫌疑人)……並將其更改為與“3.1 .0 世界”。

所以我現在有了這個。

<PackageReference Include="Microsoft.Extensions.Http" Version="3.1.0" />

現在一切正常。

因此,(實際)錯誤可能是實際發生的事情的紅鯡魚。

希望您正在使用源代碼控制,並且可以“反向”執行它。

只是為了完成這個......這是奇怪的部分:

\.nuget\packages\microsoft.extensions.http\3.1.1\lib\netcoreapp3.1\Microsoft.Extensions.Http.dll

我打開了這個文件。

它引用了

// Microsoft.Extensions.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
    // Assembly reference loading information:
    // Info: Success - Loading from: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\3.1.0\Microsoft.Extensions.Logging.dll

不是,它是“3.1.0\\Microsoft.Extensions.Logging.dll”。 那么它是什么破東西???? (誰知道?)

所以雖然這對我來說沒有意義..............我上面展示的確實解決了這個問題。

去搞清楚。

希望能幫助某人。

我在 .NET 5 上,看起來這個錯誤仍然存​​在。

問題:無法將 EntityFramework 包從 5.0.5 更新到 5.0.8。

使固定:

  1. 我發現的一種快速解決方法是從“解決方案”>“引用”>“包”中刪除所選包(在我的情況下為 5.0.5 版)的所有包引用。 右鍵單擊並刪除每個。

  2. 現在轉到 nuget 包管理器並再次添加這些相同的包(現在版本將是 5.0.8)。

  3. 建造

我有一個非常相似的錯誤,解決方案是將其添加到 my.csproj

<ItemGroup>
    <PackageReference Include="Microsoft.NETCore.Targets" Version="3.0.0" PrivateAssets="all" />
</ItemGroup>

我嘗試了2.1.1的版本,它對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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