繁体   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