[C#]FxCop
FxCop で静的解析を行う
FxCopとは、MicroSoft提供の.NET言語対応の静的解析ツール。(フリーソフト)
一般の静的解析ツールと異なるのは、解析対象がソースコードではなく、アセンブリが対象である点。
(実行形式(*.exeや*.dll)が対象となる)
また、MicroSoft提供のため、VSとの連携もはかることができる。
以下、簡単な設定。
■ダウンロード先
http://code.msdn.microsoft.com/codeanalysis
■VisualStudioとの連携のための設定方法
①適当にFxCop(現時点の最新はv1.35)をインストールする。(Typicalでおk)
②VSの「ツール」→「外部ツール」→「追加」を選択
③以下のように設定()
・タイトル
FxCop (ここは任意)
・コマンド
C:\Program Files\Microsoft FxCop 1.35\FxCopCmd.exe
・引数
/c /f:$(TargetPath) /r:"C:\Program Files\Microsoft FxCop 1.35\Rules"
・初期ディレクトリ
"C:\Program Files\Microsoft FxCop 1.35"
・チェックボックス
「出力ウィンドウを使用」のみにチェックを入れる。
以上でVS側からFxCopによる解析が可能になり、解析結果が
出力ウィンドウに表示される。
(ただし、アセンブリに対する解析のためビルドを通した状態でないとエラー。当然だけど)
で、新規にフォームを作成し、何もいじらないでビルドしたものを解析してみた。
■結果
[Location not stored in Pdb] : warning CA2209 : Microsoft.Usage : No valid permission requests were found for assembly 'FxCopTest'. You should always specify the minimum security permissions using SecurityAction.RequestMinimum.
[Location not stored in Pdb] : warning CA2210 : Microsoft.Design : Sign 'FxCopTest'with a strong name key.
[Location not stored in Pdb] : warning CA1014 : Microsoft.Design : 'FxCopTest'should be marked with CLSCompliantAttribute and its value should be true.
何もしていない状態で、すでに三つのwarningが出ている。
warningの種類はMSDNなどで調べれば原因と対応策はわかる。
何とも気持ち悪い限りだが、ソフト開発をする以上、これらの警告は
ゼロにすることが望ましいだろう。