【发布时间】:2013-03-02 13:03:21
【问题描述】:
Visual Studio 会自动定义 CONTRACTS_FULL 符号,如果 您在项目的代码合同选项卡中启用合同检查 属性页。
- C# 5.0 简述(第 518 页)
我想禁用/取消定义该符号,但它没有出现在项目设置中Build 选项卡的Conditional compilation symbols 字段中。
(我对完全禁用代码合同不感兴趣!我只是说将合同检查设置为None 不是解决方案)。
如果重要的话,我想这样做的原因是因为在我的发布版本中我只想抛出Contract.Requires<TException>,而我根本不想抛出ContractException。
我发现的一个“解决方案”是将#undef CONTRACTS_FULL 放在每个文件的第一行,它修复了它,但实际上这样做会很糟糕。
(顺便说一句,到目前为止 VS 还没有定义 CONTRACTS_FULL,我必须自己定义它,但我猜有些设置不小心改变了)
【问题讨论】:
标签: c# c-preprocessor code-contracts preprocessor-directive