我可以手动运行代码合同分析吗?

时间:2013-02-18 15:58:09

标签: c# timeout code-contracts

当我重建我的C#应用​​程序时,我经常无法得到代码合同分析的结果。这是由以下错误消息引起的

CodeContracts: MyApp.Client.Model: Analysis method MyApp.Client.Model.MyClass.CreateCalculatedElements(System.Collections.Generic.List1<System.Collections.Generic.KeyValuePair2<System.String,MyCompany.Scripting.ICompiledFunction1<System.Object>>>,System.Collections.Generic.Dictionary2<System.String,MyCompany.Scripting.ICompiledFunction1<System.Decimal>>,System.Collections.Generic.Dictionary2<System.String,MyCompany.Scripting.ICompiledFunction1<System.Decimal>>) timed out

以下是方法的定义

internal void CreateCalculatedElements(
List<KeyValuePair<string, ICompiledFunction<object>>> preFinalCalculationScripts,
Dictionary<string, ICompiledFunction<decimal>> factorCalculators,
Dictionary<string, ICompiledFunction<decimal>> elementCalculators)

这并不总是超时。有没有办法可以通过重建解决方案为一个项目而不是所有项目手动运行合同检查?

1 个答案:

答案 0 :(得分:2)

您可以通过向属性窗格中的静态检查选项添加额外选项来增加该项目的超时,如下所示:-timeout

默认值为180,即每个方法。

关于您的原始问题,是的,您可以按如下方式手动运行这些工具:

假设你的项目P在目录D中,然后转到D \ obj \ Debug \ Decl。在那里,你会找到一个名为Pcccheck.rsp的方便文件,其中包含在构建期间传递给cccheck的参数。要再次运行分析,只需发出: cccheck @ Pcccheck.rsp

目前,没有选项可以在没有重建的情况下触发仅重新分析一个项目。