【问题标题】:Are warnings generated by referencing multiple versions of the same assembly ignorable?通过引用同一程序集的多个版本生成的警告是否可以忽略?
【发布时间】:2026-01-25 22:50:01
【问题描述】:

我目前的一个项目是将共享库的数据类型从版本 3 转换为版本 4。数据模型已在许多方面进行了修改,破坏了 API(例如,Shared.Type.DumbNameShared.Type.SmartName 的大量更改),因此转换过程将不是简单的一对一映射。

为了进行这种转换,我在库的版本 4 中引用版本 3,并使用 extern aliases 来解析相关类型。我已经设置了一个测试项目,它使用必需的binding redirects 引用库的两个版本。测试项目似乎运行正常,但在构建过程中我收到以下警告:

无法解决“Shared, Version=4.0.0.0, Culture=neutral, PublicKeyToken=[token]”和“Shared, Version=3.6.8.0, Culture=neutral, PublicKeyToken=[token]”之间的冲突。任意选择“Shared, Version=4.0.0.0, Culture=neutral, PublicKeyToken="。 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 1360

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

可以安全地忽略这些警告吗?

【问题讨论】:

    标签: c# visual-studio


    【解决方案1】:

    修复警告的最佳实践,警告不能一直被忽略。这些警告与版本控制和框架有关,请确保在所有项目中引用相同版本的 dll。

    【讨论】:

      最近更新 更多