|
[[Add-in>Visual Studio/Add-in]]はExpress Editionでは利用できませんが、外部ツールは利用可能ですね。 VS Express Editionでは、[[Add-in>Visual Studio/Add-in]]は利用できませんが、外部ツールは利用可能です。 * FxCop [#i1e210f0] [[.Test:http://www.techmatrix.co.jp/products/quality/dottest/]]や[[DevPartner:http://www.compuware.co.jp/products/devpartner_fm/]]のような高価なツールを使わなくても、FxCopを使えばILの静的コード解析が可能です。 - [[Download from Microsoft Web Site:http://www.microsoft.com/downloads/details.aspx?FamilyID=3389f7e4-0e55-4a4d-bc74-4aeabb17997b]] - [[FxCop]] *** Visual Studio との統合 [#oaa9ac7a] #ref(FxCop_in_VS.jpg,around,right,nolink); + メニューの[ツール]から[外部ツール]を選択。 + 外部ツール登録ダイアログの各項目にそれぞれ以下の値を入力。 -- [タイトル]に「FxCop」 -- [コマンド]に「C:\Program Files\Microsoft FxCop 1.36\FxCopCmd.exe」 -- [引数]に「/f:$(TargetPath) /r:"C:\Program Files\Microsoft FxCop 1.36\Rules" /c /d:$(ProjectDir)\bin /gac /igc」 --- 「/d」オプションは、参照DLLがあるフォルダを必要に応じて指定する。 -- [初期ディレクトリ]に「$(ProjectDir)」 -- [出力ウィンドウを使用]をチェック + で、メニューの[ツール]から[FxCop]を選択することで、ILの静的コード解析が実行され、結果が出力ウィンドウに表示されます。 ただし、Visual Studioでは + 解析結果の除外ができない。 + エラー内容から、MSDNの関連ページを開けない。 など、FxCopアプリ単体実行時よりも機能的に劣る部分があります。 *** ソースの記述で解析を除外する方法 [#id5cf52b] - FxCopは、System.Diagnostics.CodeAnalysis.SuppressMessage属性に対応しています。 - http://msdn.microsoft.com/ja-jp/library/ms244717(VS.80).aspx + 対象プロジェクトの「条件付きコンパイルシンボル」に「CODE_ANALYSIS」を追加します。 -- SuppressMessage属性クラスは、[[[Conditional("CODE_ANALYSIS")]とマークされています:http://msdn.microsoft.com/ja-jp/library/system.diagnostics.codeanalysis.suppressmessageattribute.aspx]]から、CODE_ANALYSIS定数が定義されていないと動作しません。 + FxCopのWindowsアプリで解析結果を右クリックし、[Copy As] - [Suppress Message]を選択すると、その解析結果を除外するためのコードがClipboardに登録されます。 + Clipboardの内容を、ソースコードの該当箇所(Scopeに依って、該当メソッドだったりAssemblyInfo.csアセンブリだったり)に貼り付けます。