我目前正在开发一个.NET应用程序,它由20个项目组成。其中一些项目是使用.NET 3.5编译的,其他一些仍然是.NET 2.0项目(到目前为止没有问题)。
问题是,如果我包括一个外部组件,我总是得到以下警告:
"Found conflicts between different versions of the same dependent assembly".
此警告意味着两个项目引用同一程序集(例如System.Windows.Forms),但这两个项目需要不同的版本。您有几个选项:
原文链接:https://www.f2er.com/javaschema/283268.html>重新编译所有项目以使用相同的版本(例如,全部移动到.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。
这里是一个实用程序来识别违规的参考: