2010-08-09 76 views

回答

8

這可能是一個「小」晚了,但因爲我剛剛遇到了同樣的問題,/p:RunCodeAnalysis=false不爲我工作:

嘗試msbuild ... /p:CodeContractsRunCodeAnalysis=false

根據the code contracts documentation和我的經驗,它的工作原理是2011年2月。

2

下應該這樣做:

MSBuild ... /p:RunCodeAnalysis=false 
1

如果您不想將參數傳遞給msbuild或者您正在從Visual Studio構建,則有一種方法可以禁止靜態代碼合同檢查和代碼分析。

注意:每個* .csproj文件包含以下內容:<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

對於.NET 4.0 msbuild.exe和Microsoft.CSharp.targets路徑是"C:\Windows\Microsoft.NET\Framework\v4.0.30319\"

打開Microsoft.CSharp.targetsProject添加新PropertyGroup,如:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
... 
<PropertyGroup> 
    <CodeContractsRunCodeAnalysis>false</CodeContractsRunCodeAnalysis> 
    <RunCodeAnalysis>Never</RunCodeAnalysis> 
    <CodeContractsReferenceAssembly>DoNotBuild</CodeContractsReferenceAssembly> 
</PropertyGroup> 
... 
<!-- a lot of stuff --> 
... 
</Project> 

這樣做會效仿MSBuild的命令行參數(即/p:CodeContractsRunCodeAnalysis=false,RunCodeAnalysis=Never,CodeContractsReferenceAssembly=DoNotBuild

現在你的電腦上的所有版本(來自MSBuild和Visual Studio)都會跳過代碼a nd靜態代碼合同分析,所以你不需要從命令行傳遞參數。

相關問題