Мы выполняем Анализ кода всех наших исходных файлов. Один из наших исходных файлов является сгенерированным файлом Linq-SQL, который мы не имеем никакого контроля над сгенерированным выводом. Сгенерированный код производит предупреждения Анализа кода, что я хотел бы подавить. Есть ли какой-либо способ, которым я могу подавить предупреждения CA в сгенерированном файле кода, который не включает атрибуты создания и/или прагма в самом коде (который будет перезаписан каждый раз, когда файл сгенерирован)?
Есть ли у ваших классов атрибут [GeneratedCode]? Если это так, вы можете заставить FxCop игнорировать их:
Использование проекта FxCop:
- Откройте свой проект FxCop в FxCop
- Выберите «Проект» -> «Параметры» -> «Орфография и анализ»
- Установите флажок «Подавить результаты анализа для созданного кода
- Нажмите OK
Через командную строку:
- Передайте ключ / ignoregeneratedcode, например:
FxCopCmd.exe /file:MyAssembly.dll /out:AnalysisResults.xml /ignoregeneratedcode
Если вы используете графический интерфейс FxCop, вы можете просто исключить эти проблемы в рамках проекта FxCop. Просто щелкните правой кнопкой мыши по проблеме и выберите «Исключить», где вы можете также добавить комментарий.
Но если вы запустите FxCop в окне вывода, я понятия не имею. Возможно, вы могли бы проверить, возможно ли создать SuppressMessage на уровне модуля и вставить его в AssemblyInfo.cs. Но я так не думаю.
Вы можете обойти отсутствие атрибута GeneratedCode
, используя собственную ветвь частичных классов для применения этого атрибута. Это будет означать, что любой пользовательский код, который вы добавите (включая реализацию частичных методов), будет исключен. Например:
namespace MyApp.DB {
[GeneratedCode("LINQ To SQL", "4.0")]
internal partial class MyAppDataContext {
}
// Repeat for each entity
}