檢測到包降級: xxx從 4.3.0 降級到 4.0.0。直接從項目引用包以選擇不同版本 。


問題:

        項目升級從.net core 3.0 升級到 .net 5后,dotnet run沒有問題,dotnet publish時報 “多個類庫報檢測到包降級: xxx從 4.3.0 降級到 4.0.0。直接從項目引用包以選擇不同版本 。”錯誤,無法生成打包項目。

 

原因:

         依賴項包在包的更高版本上指定了版本約束,而不是最終解析還原。 這是由於最接近的 wins規則-解析包時,圖形中的 “即將出現的包” 的版本將覆蓋具有相同 ID 的遠處包的版本

 

解決辦法:

        微軟文檔 https://docs.microsoft.com/zh-cn/nuget/reference/errors-and-warnings/nu1605

 

         當在 .NET Core 3.0 或更高版本的項目中同時引用時,與 .NET Core 1.0 和1.1 隨附的某些包組合不兼容。 問題包通常以 System. 或 Microsoft. 開頭,並具有4.0.0 和4.3.1 之間的版本號。 在這種情況下,降級消息將具有從運行時開始的包依賴關系鏈。

 

    若要解決此問題,在類庫編輯項目文件csproj<ItemGroup>里請添加以下 PackageReference:

         

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

 

 參考:

           https://blog.csdn.net/hatmen2/article/details/104643183


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM