私のプロジェクトでは、静的チェックが無効になっていますが、それでも、cmdを指定してmsbuild.exeを実行すると、プロジェクトごとに静的チェックが開始されます...パラメーターを使用してこれを無効にする方法はありますか?
3 に答える
これは「少し」遅いかもしれませんが、同じ問題に遭遇したばかりで、うまくいき/p:RunCodeAnalysis=false
ません。
試してみてくださいmsbuild ... /p:CodeContractsRunCodeAnalysis=false
。
コード コントラクトのドキュメントと私の経験によると、これは 2011 年 2 月の時点で機能します。
次のようにする必要があります。
MSBuild ... /p:RunCodeAnalysis=false
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.targets
に新しい追加を開きます:PropertyGroup
Project
<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
PC 上のすべてのビルド (MSBuild と Visual Studio のいずれかから) は、コードと静的コード コントラクトの分析をスキップするため、コマンド ラインから引数を渡す必要はありません。