.net – 警告:在同一个依赖程序集的不同版本之间发现冲突

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

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

"Found conflicts between different versions of the same dependent assembly".

这个警告究竟是什么意思,是否有可能排除此警告(如在源代码文件中使用#pragma disable)?

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

>重新编译所有项目以使用相同的版本(例如,全部移动到.Net 3.5)。这是首选的选项,因为所有代码都是使用编译的依赖关系的版本运行的。
>添加一个binding redirect.这将抑制警告。但是.Net 2.0项目(在运行时)将绑定到.Net 3.5版本的依赖程序集,如System.Windows.Forms。您可以通过双击Visual Studio中的错误快速添加绑定重定向
>使用copyLocal = true。我不知道这是否会抑制警告。它将像上面的选项2,意味着所有项目将使用.Net 3.5版本的System.Windows.Forms。

这里是一个实用程序来识别违规的参考:

https://gist.github.com/1553265

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...