デフォルトでは、コード分析はコンパイルされたプロジェクトに対してのみ実行されます。そのため、コマンドラインからMSBuildを実行すると、コード分析が初めて実行されます。以降の呼び出しでは、コード分析はスキップされます。
背景:CAルールを評価し、ルールをオンにしたときにコードに警告がいくつあるかを確認したいと思います。そのために、すべてを再コンパイルするのではなく(時間がかかります)、コード分析を再実行するだけです。どうすればこれを達成できますか?
Visual Studio2013とMSBuild12.0を使用しています。
コード分析を明示的にオンにしても、役に立ちません。
msbuild DesktopBuild.proj /p:RunCodeAnalysis=true
のようだ
del /s *.lastcodeanalysissucceeded
msbuild DesktopBuild.proj /p:RunCodeAnalysis=true
うまくいくようです。最初のステップでは、コード分析が前の実行を「忘れ」、2番目のステップでは、プロジェクトでコード分析が有効になっていない場合でも、すべてのプロジェクトでコード分析が強制的に実行されます。これを繰り返し実行すると、コンパイル済みのプロジェクトは再度コンパイルされず、コード分析のみが再実行されます。
プロジェクトファイルでCodeAnalysisGenerateSuccessFile
をfalse
に設定するだけです。
<PropertyGroup>
<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisGenerateSuccessFile>false</CodeAnalysisGenerateSuccessFile>
</PropertyGroup>
_FxCopCmd.exe
_を使用してみます。通常はC:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop
にあります。 Visual StudioのCodeAnalysisで使用されるため、適切なパラメーターを使用して使用できるはずです。