code-contracts - 代码契约(Contract)试图获取构建错误而不是警告

标签 code-contracts

我试图让 VS2010 Ultimate with Code Contracts 生成错误而不是警告。

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

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);
     }
  }
}

它正确地确定存在违反契约(Contract)的情况:
C:\...\Program.cs(10,13): warning : CodeContracts: requires is false: msg != null

在我的 csproj 文件中有这个用于调试的属性字段:
TreatWarningsAsErrors > true
我还必须在项目设置中设置其他内容才能将这些转换为错误吗?

最佳答案

在这一点上,微软似乎选择不让这成为可能,但他们正在考虑 future :
http://connect.microsoft.com/VisualStudio/feedback/details/646880/code-contracts-dont-listen-to-treat-warnings-as-errors-setting

关于code-contracts - 代码契约(Contract)试图获取构建错误而不是警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4490836/

相关文章:

c# - C# 中的代码契约和空值检查

c# - 代码契约(Contract)由于潜在的副作用而导致错误

visual-studio - 如何完全禁用代码契约(Contract)?

c# - 通用接口(interface)的嵌套契约

c# - 代码契约(Contract) : How to express these conditions?

c# - 代码契约、空值检查和值/引用类型

.net - 为什么代码契约会生成 MyAssembly.Contracts.pdb 文件?

c# - 为什么在禁用运行时检查时 FXCop 会引发针对 Contract 类的违规?

.net - 检查 .NET 中的先决条件

c# - 在 C# 代码合约中使用纯函数时的静态验证限制?