代码合同试图获得构建错误而不是警告

我试图让代码合同VS2010 Ultimate产生错误而不是警告。

我有这个简单的测试程序:

using System.Diagnostics.Contracts;

namespace MyError
{
  public class Program 
  {
     static void Main(string[] args)
     {
         Program prog = new Program();
         prog.Log(null);
     }

     public void Log(string msg)
     {
         Contract.Requires(msg != null);
     }
  }
}

它正确地确定了违反合同:

C:...Program.cs(10,13): warning : CodeContracts: requires is false: msg != null

在我的csproj文件中有用于调试的这个属性字段:

TreatWarningsAsErrors > true

在项目设置中是否还需要设置其他功能才能将这些错误转化为错误?


看起来在这一点上,微软已经选择不要这样做,但他们正在考虑未来:http://connect.microsoft.com/VisualStudio/feedback/details/646880/code-contracts-dont-listen-以诚待人的警告-AS-错误设定


问题是代码合同使用重写器。 它们显示为警告,因为它们只在构建完成后才计算。

那么我真的不知道它是如何工作的,但除非你将代码合约编译到编译器中,否则我不会看到它们可能只是警告/消息。

链接地址: http://www.djcxy.com/p/4061.html

上一篇: Code Contracts trying to get build errors instead of warnings

下一篇: Holy grail layout with 100% height