簡體   English   中英

.NET — 管理不同版本的 NuGet 包的公共依賴項

[英].NET — Managing NuGet packages’ common dependencies with different versions

我有兩個解決方案:SolutionA 和 SolutionB(在不同的存儲庫中)。 兩種解決方案都依賴於 Package1,但 SolutionA 下的項目利用此包的 1.0.0 版,而 SolutionB 下的項目利用 2.0.0。

現在,需要在 SolutionB 中打包並發布庫的 NuGet 包,該包將在 SolutionA 中的庫中使用。

正如預期的那樣,我在嘗試此操作時看到了降級錯誤。 所以,我決定將SolutionB 中Package1 的版本降級到1.0.0 版。 代碼仍然可以編譯; 在運行時沒有不良副作用。 然后,我打包並發布並嘗試在 SolutionA編輯中重新使用:此時,我嘗試重新安裝最新版本的 SolutionB NuGet 包,方法是將其完全卸載,然后重新安裝,然后直接在 NuGet 包管理器中將其降級(w/e它被稱為..) 在 VS 中

在這一點上,我仍然看到降級錯誤,理由是 SolutionB 依賴項正在利用更高版本,但實際上,它不再是了。 為什么?

呸!!

編輯:添加錯誤以供參考。 我選擇了 Newtonsoft.Json 來演示。 這很容易復制,實際上,任何具有多個版本的 NuGet 包

錯誤 NU1605 檢測到包降級:Newtonsoft.Json 從 11.0.2 到 9.0.1。 直接從項目中引用包以選擇不同的版本。 TestProjectA -> TestProjectB 1.0.0 -> Newtonsoft.Json (>= 11.0.2) TestProjectA -> Newtonsoft.Json (>= 9.0.1)

TestProjectA 的 NuGet 依賴項:

在此處輸入圖片說明

TestProjectB 的 NuGet 依賴項:

在此處輸入圖片說明

確保在更改 TestProjectB 時,增加 NuGet 包版本或清除本地 NuGet 緩存( dotnet nuget locals all --clear )。

暫無
暫無

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

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