今僕がいじっているPCには、VisualStudio 2012 Express (VS Express) のWebとDesktopがインストールされていますが、FxCopのコマンドライン版はすでに入っていました。
最初から入っていたかどうかは謎ですが…。深く追求はしないことにして、こいつが動くかどうかを確認しておきます。
コマンドプロンプトを起動し、FxCopCmd.exeを実行します。/f オプションで分析対象のアセンブリをフルパスで、また、結果をコンソールに出力させるため、/c オプションも付けて実行。
あれ?途中までうまくいったと思ったらエラーが出た。「Xslファイルが無ぇ」と来たか。
確かにエラーメッセージを見ると、上のエクスプローラで示したフォルダに、「Xml」フォルダが無いとおかしいのかな?
うーん。そんなもんなのか。でも探せばどっかにあるんじゃないか。と思ったら果たしてありました。このリンク先がいつまであるかも謎ですが、とりあえず貼っておく。
https://trac.openstreetmap.org/browser/applications/utils/Srtm2Osm/trunk/lib/Microsoft%20FxCop%201.36/Xml/VSConsoleOutput.xsl?rev=6526
謎のTracサイトですが、このXslはそれっぽい。リンク先のページの下のほうにある、「Download in other formats / Original Format」のリンクから、「VSConsoleOutput.xsl」ファイルをダウンロードし、FxCopのフォルダに「Xml」サブフォルダを作ってそこにコピー。
その後さっきと同じコマンドを実行した結果。
うん。これでOK。特にSDK+FxCopを別途インストールしなくとも、コマンドラインのFxCopならExpressでも動作させられるようですね。…Xslファイルを一つ謎のサイトから持ってきたことを除けば、まぁ、問題はないと言えるような気がしなくもないかな。
…で、ここまでできるならビルドにFxCopも統合して、FxCopのメッセージをビルド時にワーニングとして出すようにできるんじゃないかと思い、いろいろ試行錯誤してみましたが、今のところできて無いです。MsBuildのフォルダにはFxCop用のターゲットファイルもあったし、.csproj のファイルに<CodeAnalysisTarget>を書けばいけるんじゃないかと思ったんですが、甘かった。
どなたかVS2012Expressで、FxCopをビルドに統合できた方。もしいたら教えていたいただきたいなー。なんて。
0 件のコメント:
コメントを投稿