![](/img/trans.png)
[英]How .Net/VisualStudio handles having projects dependencies each with different nuget target for same nuget packages
[英].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.