Анализ кода генератора кода сгенерированный файл - как отключить предупреждения?

Мы выполняем Анализ кода всех наших исходных файлов. Один из наших исходных файлов является сгенерированным файлом Linq-SQL, который мы не имеем никакого контроля над сгенерированным выводом. Сгенерированный код производит предупреждения Анализа кода, что я хотел бы подавить. Есть ли какой-либо способ, которым я могу подавить предупреждения CA в сгенерированном файле кода, который не включает атрибуты создания и/или прагма в самом коде (который будет перезаписан каждый раз, когда файл сгенерирован)?

5
задан Kiquenet 3 February 2013 в 09:44
поделиться

3 ответа

Есть ли у ваших классов атрибут [GeneratedCode]? Если это так, вы можете заставить FxCop игнорировать их:

Использование проекта FxCop:

  1. Откройте свой проект FxCop в FxCop
  2. Выберите «Проект» -> «Параметры» -> «Орфография и анализ»
  3. Установите флажок «Подавить результаты анализа для созданного кода
  4. Нажмите OK

Через командную строку:

  1. Передайте ключ / ignoregeneratedcode, например:
     FxCopCmd.exe /file:MyAssembly.dll /out:AnalysisResults.xml /ignoregeneratedcode

http://blogs.msdn.com/fxcop/archive/2008/02/28/faq -how-do-i-prevent-fxcop-1-36-from-firing-warnings-against-generated-code.aspx

5
ответ дан 14 December 2019 в 08:49
поделиться

Если вы используете графический интерфейс FxCop, вы можете просто исключить эти проблемы в рамках проекта FxCop. Просто щелкните правой кнопкой мыши по проблеме и выберите «Исключить», где вы можете также добавить комментарий.
Но если вы запустите FxCop в окне вывода, я понятия не имею. Возможно, вы могли бы проверить, возможно ли создать SuppressMessage на уровне модуля и вставить его в AssemblyInfo.cs. Но я так не думаю.

0
ответ дан 14 December 2019 в 08:49
поделиться

Вы можете обойти отсутствие атрибута GeneratedCode, используя собственную ветвь частичных классов для применения этого атрибута. Это будет означать, что любой пользовательский код, который вы добавите (включая реализацию частичных методов), будет исключен. Например:

namespace MyApp.DB {
    [GeneratedCode("LINQ To SQL", "4.0")]
    internal partial class MyAppDataContext {
    }

    // Repeat for each entity
}
2
ответ дан 14 December 2019 в 08:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: