web-dev-qa-db-ja.com

FxCopカスタム辞書を機能させる方法は?

FxCopカスタム辞書を正しく機能させるにはどうすればよいですか?

FxCopプロジェクトファイルと同じフォルダに保存されているファイル「CustomDictionary.xml」に認識される単語を追加してみました。 FxCopをリロードして再実行した後でも、「識別子のスペルを正しくする必要があります」というFxCopメッセージが表示されるため、これは機能していないようです。バージョン1.36を使用します。

42
Thomas Bratt

VisualStudio内で使用する場合...

From Visual Studio Code Analysis Team Blog

カスタム辞書をC#およびVisualBasicプロジェクトに追加するのは簡単です。

  1. ソリューションエクスプローラーで、プロジェクトを右クリックし、[追加]-> [新しいアイテム...]を選択します。
  2. [テンプレート]で、[XMLファイル]を選択し、CodeAnalysisDictionary.xmlなどの辞書の名前を入力して、[追加]をクリックします。
  3. ソリューションエクスプローラーで、XMLファイルを右クリックし、[プロパティ]を選択します
  4. プロパティツールウィンドウの[ビルドアクション]で、[CodeAnalysisDictionary]を選択します
  5. ソリューションエクスプローラーで、新しく作成した辞書をダブルクリックして開きます
  6. XMLエディターで、「productname」と「companyname」をチームの同等のものに置き換えて、以下を貼り付けます。

    <Dictionary>
         <Words>
            <Recognized>
                <Word>"productname"</Word>
                <Word>"companyname"</Word>
            </Recognized>
        </Words>
    </Dictionary>
    

これで、独自のカスタム単語の入力を開始する準備が整いました。辞書に存在しないプロジェクト内の各単語に新しい要素を追加するだけです。各単語では大文字と小文字が区別されないため、単語の大文字と小文字はすべて認識されます。コード分​​析は、次に実行されたときにカスタム辞書を自動的に取得します。

29
spinodal

最も簡単な方法は、それを「CustomDictionary.xml」と呼び、ソリューションフォルダーに配置することです。ここで、FxCop(1.36テスト済み)が自動的に取得します。

<CustomDictionaries SearchFxCopDir="True"
                    SearchUserProfile="True"
                    SearchProjectDir="True" />

fxCopプロジェクトファイル内。

または、/dictionaryコマンドラインパラメーターを使用して指定することもできます。

17
David Schmitt

私の知る限り、FxCop1.35以降は辞書に2つのソースを使用しています。

  • Microsoft Office辞書(MS Wordなどを介して単語を追加すると機能するはずです)
  • プロジェクトファイルフォルダではなく、FxCopプログラムフォルダに保存されている「CustomDictionary.xml」ファイル。
4
andypaxo

ビルドプロセスの一部としてFxCopCmd.exeを実行しており、ここで辞書のコマンドラインパラメーターを渡します。

FxCopCmd.exe ... /dictionary:FxCopDictionary.xml

これは、FxCopのVisual Studio 2010RCバージョンで動作します。以前のバージョンで動作するかどうかわからない。

4
Pete

David Schmittの回答 上記 に加えて、FxCopインストールフォルダー内からFxCopに付属のカスタム辞書を変更/削除する必要がある場合があります。

FxCop v1.36をインストールしたばかりですが、C:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xmlでカスタム辞書を削除するまで、辞書内のプロジェクト固有の単語を認識できませんでした。

一度、それを片側に移動すると、FxCopはソリューションフォルダーのCustomDictionary.xmlの使用を開始しました。

これは、共有カスタム辞書に一般的な単語を追加し、他のカスタム辞書内のプロジェクト/ソリューション固有の単語を追加し、実際にFxCopに両方を使用させる方法の問題を提起します。しかし、今のところそれは機能しています..。

3
Grhm

私は上記の答えのほとんどに苦労し、解決策を探し続けました。最終的に.fxcopファイルにこの変更を加え、ソース管理にチェックインしました。コマンドラインとguifxcopの両方から機能します。

この行を変更しました

<CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" />

<CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" >
  <CustomDictionary Path="$(ProjectDir)/CustomDictionary.xml"/>
</CustomDictionaries>
2
Anthony Shaw

また、ファイルが実際には*.xmlではなく*.xml.txtであることを確認してください。次に、メモ帳でファイルを作成し、それが常にtxt拡張子を追加することを忘れて愚かだと感じます。それが私にとってのことでした。

1

Build ActionCodeAnalysisDictionaryに設定する必要はありませんでした。実際、私はそれをオプションとして持っていませんでした(Visual Studio 2010 Professionalを使用)。 FxCop Integrator 拡張機能を使用しています。ソリューションを右クリックして、コード分析を選択できます。他のオプションはその他のタスクです。その中にその他のタスクメニューは編集する機能ですFxCop辞書を編集します。編集を実行すると、FxCopDictionary.xmlという新しいXMLファイルを含むCode Analysisという新しいSolution Folderが作成されました。このXMLファイルは、CustomDictionary.xmlファイルのように設定されています。

これが誰かを助けてくれることを願っています!

0
Mark