Как отключить «предупреждение как ошибку» только для сгенерированных файлов?(MSBuild) - PullRequest
5 голосов
/ 09 сентября 2010

На нашем сервере непрерывной интеграции (Teamcity 5.1.3) у нас есть сценарий msbuild, который автоматически создает наши приложения.

Когда мы включаем «Предупреждение как ошибка»: в Visual Studio он прекрасно собирается (игнорирует методы в файлах «* .designer.cs». Но на сервере сборки мы всегда получаем следующую ошибку:

[(Rebuild target(s)):] somefile.Designer.cs(XX, XX): error CS1591: Warning as Error: Missing XML comment for publicly visible type or member...

Используемый скрипт MSBuild выглядит следующим образом:

<MSBuild Projects="proj\$(ProjectName).sln"
         Targets="Clean;Rebuild"
         Properties="Configuration=Release"
         StopOnFirstFailure="True">
</MSBuild>

Я могу понять, почему это происходит, но должен быть способ сообщить msbuild, что он игнорирует отсутствующие комментарии в сгенерированных файлах?

EDITED

Копаем немного дальше: В Visual Studio Solution мы проверили «Предупреждение как ошибка», но мы также добавили ошибку 1591, указанную в текстовом поле «Подавить предупреждение». MSBuild, похоже, не воспринимает это текстовое поле «Подавить предупреждение» и завершает сборку. Что я могу сделать?

ИЗМЕНЕНО Снова Проблема состояла в том, что MSBuild предназначался для любого ЦП (и в конфигурации «ЛЮБОЙ ЦП» мы не подавляли ошибку 1591). Как только мы изменили ЛЮБОЙ ЦП, чтобы исключить ошибку 1591, все началось правильно на сервере сборки. Спасибо за тех, кто помог.

Ответы [ 3 ]

3 голосов
/ 09 сентября 2010

Вы можете игнорировать предупреждение о комментариях, добавив следующее свойство в ваш msbuildcall: nowarn = "1591,1573".

<MSBuild Projects="proj\$(ProjectName).sln"
     Targets="Clean;Rebuild"
     Properties="Configuration=Release;nowarn=1591,1573"
     StopOnFirstFailure="True">
</MSBuild>
3 голосов
/ 09 сентября 2010

Нет, MSBuild не разборчив в комментариях XML. Какой бы инструмент анализа кода вы не использовали. Гадать на что-то вроде StyleCop. Он действительно жалуется на эту проблему, он не очень умный, примерно такой же, как шаблоны проектов Windows Forms.

Вы сможете решить эту проблему только в том случае, если вы применяете те же правила сборки для разработчиков, которые применяются к серверу сборки. Потому что потребуется один из них, чтобы отредактировать код «не редактировать», который находится в файле Mumble.Designer.cs, и применить атрибут [GeneratedCode]. Сейчас его там нет.

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

Сделайте это согласованным.

0 голосов
/ 08 декабря 2014

Для меня проблема происходила только в проекте dll со ссылкой на сервис SOAP. Открыв настройки проекта на вкладке «Встроенный», я заметил, что установлен флажок «Файл XML-документации». Именно по этой причине каждый член службы SOAP вынужден оставлять комментарии!

This checkbox enforces /doc option in my build settings

...