[C#]FxCop | Assertion Failed!

[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などで調べれば原因と対応策はわかる。


何とも気持ち悪い限りだが、ソフト開発をする以上、これらの警告は

ゼロにすることが望ましいだろう。