Мы запускаем анализ кода во всех наших исходных файлах. Одним из наших исходных файлов является созданный Linq-To-SQL файл, который мы не контролируем сгенерированный вывод. Сгенерированный код генерирует предупреждения Code Analysis, которые я хотел бы подавить. Есть ли способ подавить предупреждения CA в файле сгенерированный кодом, который не включает создание атрибутов и/или прагмы в самом коде (который будет перезаписываться каждый раз при создании файла)?Анализ кода на генераторе кода Генерируемый файл - как подавить предупреждения?
ответ
У ваших классов есть атрибут [GeneratedCode]? Если это так, вы можете получить FxCop игнорировать их:
С помощью проекта FxCop:
- Откройте свой проект FxCop в FxCop
- Выберите Project -> Options -> Орфография & Анализ
- Check Подавить результаты анализа против сгенерированного кода
- Нажмите OK
С помощью командной строки:
- Pass переключатель/ignoregeneratedcode, например:
FxCopCmd.exe /file:MyAssembly.dll /out:AnalysisResults.xml /ignoregeneratedcode
Если вы используете FxCop GUI можно просто исключить эти проблемы в рамках проекта FxCop. Просто щелкните правой кнопкой мыши проблему и выберите «Исключить», где вы можете, а также добавьте комментарий.
Но если вы запустите FxCop в окне вывода, у меня нет подсказки. Возможно, вы можете проверить, возможно ли создать SuppressMessage на уровне модуля и вставить его в AssemblyInfo.cs. Но я так не думаю.
. Здесь есть еще один ответ в связанном с этим вопросе, который указывает, что вы можете добавить подавление уровня модуля в assemblyinfo.cs, но я просто попробовал его и не смог заставить его работать. Я могу добавить SuppressMessage к каждому индивидуальному методу, но это полная боль в шее, когда я хочу игнорировать ошибку для всего, что происходит в конкретной сборке. Надеюсь, кто-то ответит с решением этого! – Dave
Вы можете обойти отсутствие атрибута GeneratedCode
, используя собственную ветвь частичных классов для применения этого атрибута. Это означает, что любой пользовательский код, который вы добавляете (включая реализацию частичных методов), будет исключен. Например:
namespace MyApp.DB {
[GeneratedCode("LINQ To SQL", "4.0")]
internal partial class MyAppDataContext {
}
// Repeat for each entity
}
PLINQO (Linq-to-SQL) CodeSmith templates также автоматически генерирует этот атрибут для вас. Большинство надстроек также начинают игнорировать частичные классы, которые генерируются с помощью «.generated» в имени файла.
[System.CodeDom.Compiler.GeneratedCode ("CodeSmith", "5.0.0.0")]
- 1. Как подавить анализ кода на сгенерированный код?
- 2. Анализ кода
- 3. Анализ предупреждения анализа FxCop/кода CA1506: AvoidExcessiveClassCoupling
- 4. Анализ кода: Глобальное подавление проекта/сборки
- 5. Анализ кода Предупреждения Microsoft.Naming в аббревиатуре «Идентификатор»
- 6. Анализ кода предупреждения CA2000 без ордера
- 7. Как подавить предупреждения Perl, испускаемые из кода загруженного модуля?
- 8. Зависимость Противоречие в генераторе кода
- 9. Как я могу подавить статический анализ кода во время сборки?
- 10. Анализ статического кода/Аннотации кода
- 11. Анализ кода в Eclipse
- 12. NASM - Подавить базовые сегмент предупреждения для 64 битного кода
- 13. Анализ кода JavaScript на код
- 14. Отключить предупреждения анализа кода. NET
- 15. Анализ кода в F #
- 16. подавить предупреждение для сгенерированного кода C#
- 17. Как подавить включение исходного кода в doxygen
- 18. Анализ кода на C++ - CSCope
- 19. Ошибка в генераторе кода Gii Page
- 20. Как настроить анализ кода VSTS2008?
- 21. Выявление избыточного кода предупреждения
- 22. Анализ кода поведение правила CA1062
- 23. PMD - Предупреждения анализатора кода
- 24. TeamCity - анализ кода MSBuild
- 25. как я могу подавить все предупреждения анализа компилятора и кода от msbuild в командной строке?
- 26. Избегайте предупреждения «недостижимого кода» для кода, зависящего от препроцессора
- 27. Невозможно подавить устаревания предупреждения
- 28. Анализ производительности ассемблерного кода
- 29. Анализ сложности для кода
- 30. Предварительный просмотр кода SQL, генерируемый NHibernate
делает SuppressMessage работает, если я позвоню в fxcopcmd.exe с помощью командной строки? – Kiquenet
Да, он должен сделать – Paolo