2011-07-05 53 views
2

编译后,我的解决方案有如下快照的警告。 enter image description hereVisual Studio C#参考警告

双击该警告将弹出一个问题,我不知道它是什么。 enter image description here

如果你明白VS在说什么,请分享。

回答

5

这看起来像您在解决方案中的不同项目中引用了您的依赖项的略微不同的版本。这意味着当你尝试并运行你的项目时,如果你通过依赖关系中的类型引用任何引用,那么你可能会得到意想不到的错误,因为来自同一程序集的不同版本的类型被认为是不同的。

例如

PROJECT1使用依赖性SomeAssembly.dll是1.0版 Project2的使用依赖性SomeAssembly.dll但在1.1版 Project2的具有PROJECT1作为依赖

代码在项目2次试图通过如该类型是在SomeAssembly.dll定义的SomeType基准从其代码到项目1的代码。由于项目1来自不同版本的程序集,因此无法识别类型,因此项目1将引发错误。

您的问题可能比这更隐蔽,因为大多数这种类型的错误可以被编译器捕获,但如果你有复杂的依赖关系或使用依赖注入编译器可能不一定发现这样的事情。

Visual Studio正在为您提供有效的解决方法,将所有依赖关系重定向到特定的版本。恕我直言,我会避免采取修复,如果你可以自己手动修复它。

通过解决方案并检查所有引用以确保它们全都与版本明智匹配,您会更好。您可能需要删除并添加引用才能正常工作,但现在这样做可以避免长期的意外问题。

+0

几乎同意选择你的接受答案。请简单举例说明“如果您将依赖关系中的类型引用为任何引用,那么来自同一程序集的不同版本的类型被认为是不同的”。谢谢! –