编译后,我的解决方案有一个警告,如下快照所示。
双击警告会弹出一个问题,我不知道它是什么。
如果你明白VS在说什么,请分享。
最佳答案
这看起来您在解决方案的不同项目中引用了略有不同的依赖项版本。这意味着,当您尝试运行项目时,如果您传递依赖项中具有类型的任何引用,则可能会出现意外错误,因为来自同一程序集的不同版本的类型被认为是不同的。
例如
Project1 使用版本 1.0 的依赖项 SomeAssembly.dll
Project2 使用依赖项 SomeAssembly.dll
但版本为 1.1
Project2 将 Project1 作为依赖项
项目 2 中的代码尝试将 SomeType
的引用(该类型在 SomeAssembly.dll
中定义)从其代码传递到项目 1 的代码。项目 1 抛出一个错误,因为该类型无法识别,因为它来自不同版本的程序集。
您的问题可能比这更微妙,因为编译器可以捕获这种类型的大多数错误,但如果您有复杂的依赖项或使用依赖项注入(inject),编译器可能不一定会发现这样的事情。
Visual Studio 提供了有效的解决方法,将所有依赖项重定向到特定版本。恕我直言,如果您可以自己手动修复它,我会避免进行修复。
您最好仔细检查您的解决方案并检查所有引用文献以确保它们全部匹配版本。您可能需要删除并添加回引用才能使其正常工作,但从长远来看,现在这样做可以避免出现意外问题。
关于visual-studio - Visual Studio C# 引用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6579610/