Игнорирование сгенерированных файлов при использовании “Предупреждений обработки в качестве ошибок”

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

'Рассматривайте все предупреждения как ошибки'

Мы не можем сделать это в данный момент, потому что сгенерированные файлы (в особенности reference.cs файлы) пропускают вещи как XML-комментарии, и это генерирует предупреждение, мы не хотим подавлять предупреждения комментария xml полностью из всех файлов только для определенных типов файлов (а именно, сгенерированный код).

Я думал о способе, которым это могло быть достигнуто, но не уверено, ли это лучший способ сделать это или действительно где запустить :) Мои взгляды состоят в том, что мы должны сделать что-то с шаблонами T4 для кода, который сгенерирован таким образом, что он действительно заполняет документацию XML для сгенерированного кода.

Делает у любого есть любые идеи, в настоящее время я в хорошо по 2k предупреждениям (большой проект) :(

12
задан krystan honour 5 May 2010 в 09:11
поделиться

2 ответа

Для C # вы можете просто поместить

#pragma warning disable 1591

в начало файла reference.cs . Тогда предупреждение об отсутствии документации XML не будет.

Но вы должны делать это каждый раз, когда файл создается повторно (то есть при изменении определения вашего сервиса). Я не знаю, как повлиять на генерацию кода (я не уверен, используют ли они шаблоны T4 или где они могут быть расположены ...)

1
ответ дан 2 December 2019 в 21:23
поделиться

Вы можете выборочно отключить предупреждения с помощью прагмы:

// Disable warning messages 4507 and 4034.
#pragma warning( disable : 4507 34 )

Если вы можете выдавать такие предупреждения (или #include) в сгенерированных файлах кода, вы готово.

Кроме того, вы можете отключить их глобально в командной строке для компилятора:

/wd4326 disables compiler warning C4326.

Затем снова включить их (через файл заголовка) в файлах, для которых они нужны:

// Report warning 4326 as an error.
#pragma warning( error : 326 )

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

Правка : Я вижу, что ваши исходные файлы написаны на C #, а не на C ++.

Использование командной строки C #:

to suppress CS0028, you could specify /nowarn:28.

К сожалению, / warnaserror делает все предупреждениями об ошибках.

6
ответ дан 2 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

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