簡體   English   中英

為什么.net對於相同的nuget包顯示版本沖突,而該nuget包是第三方庫/包的內部依賴項?

[英]Why .net shows version conflict for same nuget package which is internal dependency for 3rd party library/package?

Newtonsoft.json庫的版本沖突。

重現問題的步驟:

  1. 創建2個.net C#項目
  2. 項目1包括IdentityModel和某些方法
  3. 項目2包含Microsoft.AspNet.WebApi.OwinSelfHost的某些方法
  4. 打包並創建nuget包,然后在本地發布(將創建2個包)
  5. 現在創建一個測試項目,並在其中安裝兩個nuget軟件包。
  6. 從已安裝的程序包中調用該方法。 您將收到有關Newtonsoft.json的沖突錯誤

我在Kafka和REST的基礎上開發了兩個自定義插件。 為了完整填充插件,我使用了第三方庫作為依賴項的一部分。 依賴關系在內部使用Newtonsoft.Json包及其特定版本。

用於開發kafka插件的軟件包 用於開發kafka插件的軟件包

包用於開發REST插件 包用於開發REST插件

.net不應該顯示錯誤

System.Reflection.TargetInvocationException:調用的目標引發了異常。 ----> System.IO.FileLoadException:無法加載文件或程序集“ Newtonsoft.Json,版本= 6.0.0.0,文化=中性,PublicKeyToken = 30ad4fe6b2a6aeed”或其依賴項之一。 找到的程序集的清單定義與程序集引用不匹配。 (來自HRESULT的異常:0x80131040)

因為第3方庫應根據其版本引用其軟件包。 對我來說,如果我導航到

%USERPROFILE%.nuget \\ packages

位置,我可以看到版本圖 版本 對於newtonsoft.json和第3方庫,應在運行時使用它們。 版本6.0.4和11.0.2應該在運行時加載。

請使用Update-Package命令更新所有項目中的所有軟件包

暫無
暫無

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

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