2013-02-18 95 views
3

當我重建我的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) 

的定義,這並不總是超時。有沒有一種方法可以通過重建解決方案手動運行合同檢查而不是通過一個項目而不是全部?

回答

2

您可以通過如下增加一個額外的選項,在屬性面板中的靜態檢查選項增加該項目的超時:-timeout

默認值是180,這是每個方法。

至於你原來的問題,是的,你可以手動運行如下工具:

說你的項目,P是在目錄d,然後轉到d \ OBJ \調試\申報。在那裏你會找到一個名爲Pcccheck.rsp的方便的文件,其中包含在構建過​​程中傳遞給cccheck的參數。要再次運行分析,您只需發出以下命令: cccheck @ Pcccheck.rsp

現在,沒有一個選項可以在沒有重建的情況下觸發一個項目的重新分析。

+0

dir * .rsp/s在我的項目文件夾或子文件夾內的任何地方都沒有顯示任何.r​​sp文件。 – 2013-04-25 10:39:59

+0

嗯,那很奇怪。你沒有使用一些真正的舊版本嗎?很久以前我們引入了.rsp文件。只有在實際啓用靜態檢查器並至少執行一次構建時纔會寫入這些文件。清理構建時,它們也會被刪除。 – 2013-04-25 14:50:39

+0

Manuel,是否有計劃支持在Visual Studio上手動運行靜態分析的功能?我們的團隊能夠像代碼分析(FxCop)一樣運行它,它有一個對話框,您可以在其中選擇一個項目或整個解決方案並根據此分析運行分析,這對我們的團隊非常有用。 – julealgon 2015-01-12 21:26:05

相關問題