首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >警告:发现同一依赖程序集的不同版本之间存在冲突

警告:发现同一依赖程序集的不同版本之间存在冲突
EN

Stack Overflow用户
提问于 2008-08-20 12:01:00
回答 20查看 202K关注 0票数 344

我目前正在开发一个由20个项目组成的.NET应用程序。其中一些项目是使用.NET 3.5编译的,其他一些仍然是.NET 2.0项目(到目前为止没有问题)。

问题是,如果我包含一个外部组件,我总是得到以下警告:

发现同一依赖程序集的不同版本之间存在冲突。

这个警告到底是什么意思,有没有可能排除这个警告(就像在源代码文件中使用#杂注停用)?

EN

回答 20

Stack Overflow用户

回答已采纳

发布于 2010-01-26 13:54:29

此警告意味着两个项目引用了相同的程序集(例如System.Windows.Forms),但这两个项目需要不同的版本。您有几个选项:

  1. 重新编译所有项目以使用相同的版本(例如,全部迁移到.Net 3.5)。这是首选选项,因为所有代码都使用编译时使用的依赖项版本运行。
  2. 添加binding redirect。这将禁止显示警告。但是,您的.Net 2.0项目将(在运行时)绑定到.Net 3.5版本的依赖程序集,如System.Windows.Forms。你可以在Visual Studio中双击error来快速添加绑定重定向。
  3. 使用CopyLocal=true。我不确定这是否会抑制警告。与上面的选项2一样,这意味着所有项目都将使用System.Windows.Forms.

的.Net 3.5版本

以下是识别违规引用的几种方法:

  • 您可以使用https://gist.github.com/1553265
  • 中提供的实用程序。另一种简单的方法是设置生成输出详细信息(“工具”、“选项”、“项目和解决方案”、“生成并运行”、“MSBuild项目生成输出详细信息”),并在生成之后,在“输出”窗口中搜索警告,然后查看警告上方的文本。(向在对这个答案的评论中提出这个建议的致敬)。
票数 434
EN

Stack Overflow用户

发布于 2008-08-20 12:08:05

基本上,当您引用的程序集的"Copy Local“设置为"True”时,就会发生这种情况,这意味着DLL的副本与您的exe一起放在bin文件夹中。

由于Visual Studio还将复制被引用程序集的所有依赖项,因此最终可能会引用同一程序集的两个不同版本。如果您的项目位于不同的解决方案中,则更有可能发生这种情况,因此可以单独编译。

我解决这个问题的方法是将程序集项目中的引用的Copy Local设置为False。只对可执行文件/web应用程序执行此操作,在这些应用程序中,您需要运行最终产品的程序集。

希望这是有意义的!

票数 45
EN

Stack Overflow用户

发布于 2015-11-10 23:18:51

我想发布他们在上面的评论中提供的pauloya的解决方案。我相信这是找到令人不快的引用的最佳解决方案。

要查找什么是“令人不快的引用”,最简单的方法是设置生成输出详细信息(工具、选项、项目和解决方案、生成和运行、MSBuild项目生成输出详细信息),并在生成之后,在输出窗口中搜索警告。查看其正上方的文本。

例如,当您在output面板中搜索"conflict“时,您可能会找到类似以下内容:

代码语言:javascript
复制
3>  There was a conflict between "EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
3>      "EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" was chosen because it was primary and "EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" was not.

如您所见,EF版本5和6之间存在冲突。

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档