Подтвердить что ты не робот

Как заставить пользовательский словарь FxCop работать?

Как можно правильно настроить пользовательский словарь FxCop?

Я попытался добавить слова для распознавания в файл "CustomDictionary.xml", который хранится в той же папке, что и файл проекта FxCop. Это, похоже, не работает, поскольку я все еще получаю сообщение "Идентификаторы должны быть правильно записаны" FxCop даже после перезагрузки и повторного запуска FxCop. Использование версии 1.36.

4b9b3361

Ответ 1

Если вы используете его внутри Visual Studio...

Из Блог группы анализа кода Visual Studio

Чтобы добавить пользовательский словарь в С# и Проект Visual Basic прост:

  • В обозревателе решений щелкните правой кнопкой мыши проект и выберите Add → New Пункт...
  • В разделе "Шаблоны" выберите "Файл XML", введите имя для словаря, например как CodeAnalysisDictionary.xml и нажмите "Добавить"
  • В обозревателе решений щелкните правой кнопкой мыши файл XML и выберите "Свойства"
  • В окне инструмента "Свойства" в разделе "Построение действия" выберите CodeAnalysisDictionary
  • В обозревателе решений дважды щелкните по новому созданному откройте его
  • В редакторе XML вставьте следующее, заменив "productname" и "companyname" с вашей командой эквиваленты:

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

Теперь вы готовы начать ввод ваши собственные пользовательские слова. Просто добавьте новый элемент для каждого слова в ваш проект, который не существует в словарь. Каждое слово без учета регистра, поэтому любой корпус слово будет распознано. Анализ кода автоматически подберет обычай словарь при следующем запуске.

Ответ 2

Самый простой способ - просто называть его "CustomDictionary.xml" и поместить его в папку решений, где FxCop (1.36, протестированный здесь) автоматически подберет его, если у вас есть

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

в файле проекта FxCop.

В качестве альтернативы вы можете указать его с помощью параметра командной строки /dictionary.

Ответ 3

Насколько мне известно, FxCop 1.35 и далее используют два источника для словаря.

  • Должен работать рабочий словарь Microsoft Office (добавление слов через MS Word и т.д.)
  • Файл 'CustomDictionary.xml', хранящийся в папке программы FxCop, а не в папке файла проекта.

Ответ 4

Я запускаю FxCopCmd.exe как часть моего процесса сборки, и здесь я передаю параметр командной строки словаря

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

Эта работа с Visual Studio 2010 RC версии FxCop. Не знаю, будет ли он работать с предыдущими версиями.

Ответ 5

В ответ на ответ Дэвида Шмитта выше вам может потребоваться изменить/удалить пользовательский словарь, который поставляется с FxCop из папки установки FxCop.

Я только что установил FxCop v1.36 и не смог получить специальные слова в моем словаре для распознавания, пока я не удалю пользовательский словарь в C:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xml.

Однажды я переместил это в сторону, FxCop начал использовать CustomDictionary.xml в папке решения.

Это вызывает вопрос о том, как добавлять общие слова в общий пользовательский словарь и конкретные слова проекта/решения в другие пользовательские словари и фактически использовать FxCop для обоих. Но пока это работает....

Ответ 6

Я боролся с большинством из вышеперечисленных ответов и продолжал искать решение. Я, наконец, сделал это изменение в моем файле .fxcop и проверил его в исходном элементе управления, он работает как из командной строки, так и из gui fxcop

Я изменил эту строку

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

к

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

Ответ 7

Также убедитесь, что файл действительно *.xml, а не *.xml.txt. Тогда вам будет глупо создавать файл с блокнотом и забыть, что он всегда добавляет расширение txt. Это то, что оказалось для меня.

Ответ 8

Мне не нужно было устанавливать Build Action как CodeAnalysisDictionary. Фактически, у меня даже не было этого в качестве опции (с использованием Visual Studio 2010 Professional). Я использую расширение FxCop Integrator. Это позволяет вам щелкнуть правой кнопкой мыши по Solution и выбрать Code Analysis. Другой вариант - "Дополнительные задачи". В этом меню "Дополнительные задачи" есть возможность редактировать Редактировать словарь FxCop. Когда я выполнил редактирование, он создал новую папку решений, называемую Code Analysis, содержащую новый XML файл FxCopDictionary.xml. Этот XML файл настроен так, как можно было бы ожидать, что файл CustomDictionary.xml будет выглядеть.

Надеюсь, это поможет кому-то там!