次のような方法で、CI ビルド プロセスに StyleCop を統合するように依頼されました。
- (大規模な) ソリューションの個々のプロジェクト ファイルは影響を受けません
- サードパーティのツールを使用する必要はありません
最初の要件 (まだ完全には理解していません) は、ソリューション全体で StyleCop を直接実行したくないという事実によるものです。どうやら、VS 内から StyleCop を実行すると、無視するファイルを指定する特定の属性が無視されます。このため、開発マシンで実行すると、まだ対処する準備ができていない何千もの違反に継続的に遭遇します。要するに、ビルド サーバーでのみ実行できるようにしたいということです。
私たちのビルド環境は現在、次のもので構成されています。
クルーズ コントロール > msbuild を実行する nant タスク (exec 経由)
nant タスクは以下のとおりです。
<target name="buildSolution">
<echo message="Building solution..." />
<exec program="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe"
commandline="${Project.SolutionFile} /t:Rebuild /p:Configuration=${Project.SolutionBuildConfiguration} /v:q" workingdir="." />
</target>
これを最初に見たとき、msbuild が実行されているのと同様の方法で StyleCop を実行する単純なケースだと思いました。
ただし、StyleCop は dll のセットとして提供されます...
ということは、自分の意図したことができていないということ……だと思います……。
今日私がグーグルで検索したすべての記事は、「StyleCopCmd を使用する」と述べていますが、これもサードパーティのツールの制限のために実行できません。
このツールを調べたところ、StyleCopConsole を開始し、いくつかのイベントにフックして適切にフォーマットされたレポートを出力するカスタム nant タスクが実装されているようです。しかし、社内でツールを作成することを正当化できるようにするためには、nant 構成ファイルで目的を達成できない理由を完全に説明できる必要があります。または、ツールの作成または使用を伴わないその他の方法で。そして理想的には、とにかくツールを作成したり使用したりする必要がなければ、より高速になります。
だから私の質問は、それは可能ですか?