FxCopカスタム辞書を正しく機能させるにはどうすればよいですか?
FxCopプロジェクトファイルと同じフォルダに保存されているファイル「CustomDictionary.xml」に認識される単語を追加してみました。FxCopをリロードして再実行した後でも、「識別子は正しくスペルされている必要があります」というFxCopメッセージが表示されるため、これは機能していないようです。バージョン1.36を使用します。
FxCopカスタム辞書を正しく機能させるにはどうすればよいですか?
FxCopプロジェクトファイルと同じフォルダに保存されているファイル「CustomDictionary.xml」に認識される単語を追加してみました。FxCopをリロードして再実行した後でも、「識別子は正しくスペルされている必要があります」というFxCopメッセージが表示されるため、これは機能していないようです。バージョン1.36を使用します。
Visual Studio内で使用する場合...
Visual Studio コード分析チームのブログより
カスタム ディクショナリを C# および Visual Basic プロジェクトに追加するのは簡単です。
- ソリューション エクスプローラーでプロジェクトを右クリックし、[追加] -> [新しい項目...] を選択します。
- [テンプレート] で [XML ファイル] を選択し、辞書の名前 (CodeAnalysisDictionary.xml など) を入力して、[追加] をクリックします。
- ソリューション エクスプローラーで、XML ファイルを右クリックし、[プロパティ] を選択します。
- プロパティツールウィンドウのビルドアクションで、CodeAnalysisDictionary を選択します
- ソリューション エクスプローラーで、新しく作成したディクショナリをダブルクリックして開きます。
XML エディターで、以下を貼り付け、「productname」と「companyname」をチームの同等のものに置き換えます。
<Dictionary> <Words> <Recognized> <Word>"productname"</Word> <Word>"companyname"</Word> </Recognized> </Words> </Dictionary>
これで、独自のカスタム ワードを入力する準備が整いました。辞書に存在しないプロジェクト内の単語ごとに新しい要素を追加するだけです。各単語は大文字と小文字が区別されないため、単語の大文字と小文字は認識されます。コード分析は、次回の実行時にカスタム ディクショナリを自動的に取得します。
最も簡単な方法は、それを「CustomDictionary.xml」と呼び、ソリューション フォルダーに配置することです。
<CustomDictionaries SearchFxCopDir="True"
SearchUserProfile="True"
SearchProjectDir="True" />
FxCop プロジェクト ファイルに .
/dictionary
または、コマンド ライン パラメータを使用して指定することもできます。
ビルド プロセスの一部として FxCopCmd.exe を実行しています。ここでは、ディクショナリ コマンド ライン パラメータを渡します。
FxCopCmd.exe ... /dictionary:FxCopDictionary.xml
これは、Visual Studio 2010 RC バージョンの FxCop で動作します。以前のバージョンで動作するかどうかはわかりません。
上記の David Schmitt の回答に加えて、FxCop インストール フォルダー内から FxCop に同梱されているカスタム ディクショナリを変更または削除する必要がある場合があります。
FxCop v1.36 をインストールしたばかりですが、でカスタム辞書を削除するまで、辞書内のプロジェクト固有の単語を認識できませんでしたC:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xml
。
いったん、それを脇に移動すると、FxCopCustomDictionary.xml
はソリューション フォルダー内の を使用し始めました。
これは、一般的な単語を共有カスタム辞書に追加し、プロジェクト/ソリューション固有の単語を他のカスタム辞書内に追加し、実際に FxCop で両方を使用する方法の問題を引き起こします。しかし、今のところそれは機能しています....
上記の回答のほとんどに苦労し、解決策を探し続けました。最終的に .fxcop ファイルにこの変更を加え、ソース管理にチェックインしました。コマンド ラインと gui fxcop の両方から機能します。
この行を変更しました
<CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" />
に
<CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" >
<CustomDictionary Path="$(ProjectDir)/CustomDictionary.xml"/>
</CustomDictionaries>
*.xml
また、ファイルが本当に*.xml.txt
. 次に、メモ帳でファイルを作成し、常に txt 拡張子が追加されることを忘れているのはばかげていると感じます。それが私にとって判明したことです。
Build ActionをCodeAnalysisDictionaryに設定する必要はありませんでした。実際、私はそれをオプションとして持っていませんでした (Visual Studio 2010 Professional を使用)。FxCop Integrator拡張機能を使用しています。ソリューションを右クリックして [コード分析] を選択できます。もう 1 つのオプションは [その他のタスク]です。そのMore Tasksメニュー内には、Edit FxCop Dictionaryを編集する機能があります。編集を実行すると、 FxCopDictionary.xmlという新しい XML ファイルを含むCode Analysisという新しいソリューション フォルダーが作成されました。この XML ファイルは、期待どおりに設定されています。CustomDictionary.xmlファイルのようになります。
これが誰かを助けることを願っています!