Мы запустили новый проект, но также и имеем эту проблему для существующего проекта. Проблема состоит в том, что, когда мы компилируем с уровнем предупреждения 4, мы также хотим включить
'Рассматривайте все предупреждения как ошибки'
Мы не можем сделать это в данный момент, потому что сгенерированные файлы (в особенности reference.cs файлы) пропускают вещи как XML-комментарии, и это генерирует предупреждение, мы не хотим подавлять предупреждения комментария xml полностью из всех файлов только для определенных типов файлов (а именно, сгенерированный код).
Я думал о способе, которым это могло быть достигнуто, но не уверено, ли это лучший способ сделать это или действительно где запустить :) Мои взгляды состоят в том, что мы должны сделать что-то с шаблонами T4 для кода, который сгенерирован таким образом, что он действительно заполняет документацию XML для сгенерированного кода.
Делает у любого есть любые идеи, в настоящее время я в хорошо по 2k предупреждениям (большой проект) :(
Для C # вы можете просто поместить
#pragma warning disable 1591
в начало файла reference.cs
. Тогда предупреждение об отсутствии документации XML не будет.
Но вы должны делать это каждый раз, когда файл создается повторно (то есть при изменении определения вашего сервиса). Я не знаю, как повлиять на генерацию кода (я не уверен, используют ли они шаблоны T4 или где они могут быть расположены ...)
Вы можете выборочно отключить предупреждения с помощью прагмы:
// 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
делает все предупреждениями об ошибках.