FxCopとの差異
利点
* 指摘事項に対するコードを探すのが容易 (FxCopの場合、IL を解析するので、指摘事項がコードのどこに該当するのか、分かり難い)
欠点
* C# しか対応していない →別の言い方をすれば、C#だけであれば上記の利点から、StyleCopの方が優れていると言える
設定方法
http://nakaji.hatenablog.com/entry/20100507/1273247285が参考になる。 [1] 以下のダウンロード先から、StyleCopを落としてくるhttp://archive.msdn.microsoft.com/sourceanalysis
[2] 落としてきたインストーラから、StyleCopをインストールする [3] Visual Studio を起動し、適当なクラスを作成する [4] 「~.csproj」をテキストエディタで開き、以下を追記する </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- ★↓ここを追加(注意:「v4.3」の部分はStyleCopのバージョンに併せて下さい) --> <Import Project="$(ProgramFiles)\MSBuild\Microsoft\StyleCop\v4.3\Microsoft.StyleCop.targets" /> <!-- ★↑ここを追加 --> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. [5] ビルドすると、以下のようなチェックをしてくれる ~~~~ コンパイルの完了 -- エラー 0、警告 1 ClassLibrary1 -> C:\Users\admin\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll Properties\AssemblyInfo.cs(1,1): warning : SA1633: The file has no header, the header Xml is invalid, or the header is not located at the top of the file. Class1.cs(7,1): warning : SA1600: The class must have a documentation header. Class1.cs(9,1): warning : SA1600: The field must have a documentation header. Class1.cs(11,1): warning : SA1600: The method must have a documentation header. Class1.cs(1,1): warning : SA1633: The file has no header, the header Xml is invalid, or the header is not located at the top of the file. Class1.cs(9,1): warning : SA1309: Field names must not start with an underscore. Class1.cs(1,1): warning : SA1200: All using directives must be placed inside of the namespace. Class1.cs(2,1): warning : SA1200: All using directives must be placed inside of the namespace. Class1.cs(3,1): warning : SA1200: All using directives must be placed inside of the namespace. ========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========
日本語化について
[1] 以下のサイトで、該当モジュール「stylecop-f1a1f7cd9f80-ja-1.2.zip」をダウンロードするhttp://oss-ja-jpn.sourceforge.jp/
[2] ダウンロードしたモジュールを解凍する [3] Windowsのメニューから[スタート]-[すべてのプログラム]-[アクセサリ]-[コマンドプロント]を 右クリックして、「管理者として実行」を選択 [4] コマンドプロントで解凍したファイルのProjectフォルダ下の「Environment.cmd」を実行 => マイクロソフトのパーシャルサインが設定される 例:> cd C:\StyleCop\stylecop_f1a1f7cd9f80-ja-1.2\Project > Environment.cmd [5] Buildフォルダ下のファイルを、インストールしたStyleCopの既存ファイル(DLLなど) を上書き ~~~~ ■コピー元 stylecop_f1a1f7cd9f80-ja-1.2\Build ■コピー先 C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.3 ~~~~ →再度、ビルドを実行すると、日本語になっているはず。
参考文献
http://nakaji.hatenablog.com/entry/20100627/1277615741ルールの適用・不適用
* デフォルトだとかなり厳しいので、オフりたいルールもあると思うのでその手順を以下に記す。
手順
[1] C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.3で 「Settings.StyleCop」をダブルクリック [2] 「ルール」タブの左側の「含むルール」内のチェックボックスを外せば、オフれる。 ※番号さえ分かっていれば、検索機能もあるので、オフるの楽。 [3] 「ルール」タブの右側の「詳細」内のチェックボックスを外せば、 デザイナへのチェックがオフれる。
参考
* 「SA1630」「SA1631」は、OFFった方がいいらしい (「SA1630」は実体験でOFFった方がいいと思った)http://www42.atwiki.jp/jfactory/pages/57.html
* 以下にものってるhttp://honeplus.blog50.fc2.com/blog-category-7.html
カスタムルール
手順
[1] .NET Library プロジェクトを作成する [2] 以下のDLLを参照する * C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.3\Microsoft.StyleCop * C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.3\Microsoft.StyleCop.CSharp [3] クラスとXMLを作成する ※ 作成したXMLファイルは、VSのソリューションエクスプローラ上で右クリックし、 プロパティの「ビルドアクション」を「埋め込まれたリソース」を選択しておくこと ※ 以下のサイトを参照のことhttp://d.hatena.ne.jp/white-azalea/20090603/1244040613
[4] ビルドする [5] 作成したDLLファイルをインストーラのフォルダ 「C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.3」 に格納しておく [6] VSを再起動して、ビルドすると適用される (これ忘れると偉いことになる。以下のサイトでもハマっている人がいた)http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/f14042c0-c44e-487d-8528-34aa2eb11089/
参考文献
http://d.hatena.ne.jp/m-tanaka/20080530/p1http://www.lovethedot.net/2008/05/creating-custom-rules-for-microsoft_6976.html
い
参考文献
http://blog.nextscape.net/index.php/research/dotnetenv/stylecophttp://nakaji.hatenablog.com/entry/20100507/1273247285
http://blogs.wankuma.com/jitta/archive/2012/03/18/260357.aspx
http://i-jupiter.blogspot.jp/2013/02/c-stylecop.html
その他
メモ:StyleCopとは関係ないが、他にも色々なツールを試してみたいhttp://www.sunny-grove.net/articles/dotnet/