複数のプロジェクトを含むソリューションがあり、FxCop を使用しています。要求されたコンパイルが完了したら、それを実行したいと考えています (1 つのプロジェクト、複数のフォルダーを含むフォルダー、またはソリューション全体である可能性があります)。
これを行う方法はありますか?現在、プロジェクトごとに行っていますが、これにはいくつかの欠点があります。
複数のプロジェクトを含むソリューションがあり、FxCop を使用しています。要求されたコンパイルが完了したら、それを実行したいと考えています (1 つのプロジェクト、複数のフォルダーを含むフォルダー、またはソリューション全体である可能性があります)。
これを行う方法はありますか?現在、プロジェクトごとに行っていますが、これにはいくつかの欠点があります。
はい、特定の命名パターンを使用してソリューション ファイルの隣にファイルを配置することで、それを行う方法があります。after.{Your solution name here}.sln.targets
<!--?xml version="1.0" encoding="utf-8"?-->
<project toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<target name="AtTheStart" beforetargets="Build">
<message text="GenerateCode target running" importance="high">
</message>
</target>
<target name="AtTheEnd" aftertargets="Build">
<message text="GenerateCode target running" importance="high">
</message>
</target>
</project>
ただし、FxCop を効果的に実行し、visualstudio をインストールしたい場合は、ビルド中に MsBuildを含める/p:RunCodeAnalysis=true
か呼び出しで実際にアクティブ化できます。/p:RunCodeAnalysis=always
これにより、ビルド中に構成されたルールセット ファイルが実行されます。/p:CodeAnalysisRuleSet=PathTo.ruleset
特定のルールセット ファイルを指定できます。
コマンドラインは常にプロジェクト自体の構成を上書きします。そして、それは最適な方法で実行されます。
FxCop プロジェクト セット (すべてのプロジェクトにすべての dll を含む) を配置し、すべてのプロジェクトが VS でビルドされた後に呼び出します。