【问题标题】:dll file dependency mess with nuget packagereferencedll文件依赖与nuget packagereference混淆
【发布时间】:2021-06-08 14:03:39
【问题描述】:

我们的团队提供了多个 nuget SDK 供用户参考。我们创建的每个 nuget 文件都将包含其自己的项目 dll 文件及其依赖项 dll 文件。

当用户尝试使用多个 nuget sdks 时,这给我们带来了问题。特别是当这些 nuget 包含不同版本的相同 dll 依赖项时。

例如,nuget A 包含 a.dll。由于依赖自动解析,nuget B(取决于 nuget A)同时包含 a.dll 和 b.dll。如果用户同时添加了对nuget A和B的引用,并且当a.dll有任何变化时,我们需要同时更新nuget A和B,并要求我们的使用同时更新到最新的nuget A和B。

当我们拥有的 nuget 数量增加时,这给我们带来了很多麻烦。每次我们进行一些更改时,我们都必须更新我们支持的所有 nuget。 有什么方法可以将一个 dll 依赖项限制在一个 nuget 中?然后我们只需要在发生一些更新时更新一个 nuget。

谢谢

【问题讨论】:

    标签: c# .net nuget


    【解决方案1】:

    我们创建的每个 nuget 文件都将包含其自己的项目 dll 文件及其依赖项 dll 文件。

    这就是问题所在。每个 NuPkg 文件应该只包含它自己的库,但要声明它对其他包的依赖关系。这是打包 NuPkg 文件时的默认行为,因此您可能在 .nuspec 文件或 .csproj 文件中添加了额外的位来包含依赖库...只需删除这些。

    一旦每个包只包含自己的库,您就会回到“预期”的情况,客户端应该能够只依赖其中一个,并且工具将传递地解决依赖关系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-29
      • 2020-11-30
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 2011-12-16
      相关资源
      最近更新 更多