【问题标题】:How to resolve the c# build warning Found conflicts between different versions of the same dependent assembly如何解决c#构建警告发现同一依赖程序集的不同版本之间存在冲突
【发布时间】:2014-09-11 18:24:12
【问题描述】:

在构建时下载同一程序集的多个版本时会出现多个警告,如下所述。还有一点,由于 Nuget 中的依赖关系,大多数这些程序集都被下载了。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1605):发现同一依赖程序集的不同版本之间存在冲突。

2>“Ionic.Zip, Version=1.9.1.5, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c”和“Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c”之间存在冲突。 2> 选择“Ionic.Zip, Version=1.9.1.5, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c”是因为它是主要的,而“Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c”不是。 2> 依赖于 "Ionic.Zip, Version=1.9.1.5, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c" [C:\TFS\DSCNC\Dev\CatalogServices\Background\packages\DotNetZip.1.9\lib\Ionic.Zip .dll]。

解决此问题的一种方法是检查 Packages 文件夹中的最新程序集。

是否有任何方法或配置设置可以防止下载同一程序集的多个版本?

【问题讨论】:

  • 似乎最简单的解决方案是升级您的 Nuget 包,这样在同一解决方案中就不会出现同一包的冲突版本,因为这通常是造成这种情况的原因。
  • 虽然上面提到的解决方案看起来很容易解决,但在很多情况下它可能不是正确的解决方案。因为多个 nuget 包可能依赖于不同版本的 nuget 包。因此,除了引用最新的 nuget 包外,您还应该将绑定重定向添加到为 nuget 包添加的最新版本,以便其他引用旧版本 nuget 的 nuget 将重定向到最新版本并且不会出现构建警告。
  • *.config 绑定重定向和不需要特定版本的引用确实是需要的。说得好。

标签: c#-4.0 msbuild


【解决方案1】:

由于多个 nuget 包可能依赖于不同版本的 nuget 包。因此,除了引用最新的 nuget 包外,您还应该将绑定重定向添加到为 nuget 包添加的最新版本,以便其他引用旧版本 nuget 的 nuget 将重定向到最新版本并且不会出现构建警告。

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 2014-06-26
    • 2010-12-24
    • 2018-03-16
    • 1970-01-01
    • 2014-09-06
    • 2013-05-22
    相关资源
    最近更新 更多