我刚刚升级到 Visual Studio 2010 并安装了代码契约(Contract) msi。当我尝试使用它时,我得到一个编译器错误,即 system.diagnostics.contracts.contract dll 存在于 v3.5 和 v4 框架中。有谁知道我应该怎么做才能解决这个问题?谢谢。
最佳答案
如果您要将使用契约(Contract)的 .NET 3.5 项目升级到 .NET 4.0,请确保删除对 Microsoft.Contracts
程序集的引用。
Microsoft.Contracts
程序集提供用于 .NET 2.0 或 3.5 项目的代码协定,但默认情况下在 mscorlib
中随 .NET 4.0 提供,因此您不必不需要它。它们都共享 System.Diagnostics.Contracts
命名空间,因此通过同时引用两者,编译器无法确定您正在尝试使用哪一个。
关于visual-studio-2010 - system.diagnostics.contracts.contract 在 v4.0 v3.5 中都存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498461/