Я включил "Предупреждения обработки как ошибки" для моего проекта VS, которые означают, что я получаю ошибки для недостающей документации (хорошее напоминание для этого конкретного проекта).
Однако часть кода сгенерирована инструментом пользователя, который не вставляет xml документацию, таким образом, я ищу далеко для игнорирования пропавших без вести xml документация для сгенерированного кода только, не для всего проекта. Я не имею никакого влияния на фактический сгенерированный файл и ничего не могу действительно вставить в файл (поскольку он часто повторно создается инструментом), так я ищущий что-то существующее вне сгенерированного файла (классы, которые сгенерированы, неравнодушны, если это помогает),
РЕДАКТИРОВАТЬ: См. Комментарии, указывающие, что этот не работает с C # 4. Я не понимаю, работало ли оно в более ранних версиях. компилятора. Однако спецификация C # 4 делает это довольно ясным. В разделе 2.5.8.1 говорится:
Директива
#pragma warning restore
восстанавливает все или заданный набор предупреждений до состояния, которое было в начале модуля компиляции. Обратите внимание, что если конкретное предупреждение было отключено извне,#pragma warning restore
(для всех или для указанного предупреждения) не будет повторно включать это предупреждение.
Джефф предлагает обходной путь в сообщении в блоге - в основном для повторной обработки автоматически сгенерированного кода как части сборки.
Как говорит Том, вы можете добавить «игнорировать» ко всему проекту (Build / Suppress Warnings - введите 1591 в качестве номера предупреждения), но затем вы можете восстановить предупреждение самостоятельно в верхней части каждый из ваших несгенерированных файлов:
#pragma warning restore 1591
Это довольно некрасиво, но работает (я только что протестировал).
Лучший способ избежать появления предупреждений или ошибок анализа кода на сгенерированный код должен украсить ваши сгенерированные классы атрибутом GeneratedCodeAttribute и сделать конец файла кода шаблоном *. generated.cs .
Если у ваших файлов кода также есть заголовок файла, у вас должны быть следующие теги:
//----------------------
// <auto-generated>
// Tool description
// </auto-generated>
//----------------------
Это не обязательно, но если у вас есть заголовок файла кода, это хорошая практика.
Таким образом, FxCop и другие инструменты, такие как StyleCop, больше не будут анализировать ваш код.
Что ненормально, так это то, что ваш инструмент генерации кода не обрабатывает элементы кода с помощью атрибута, упомянутого выше.Попробуйте посмотреть, есть ли возможность включить в настройках вашего инструмента, или свяжитесь с командой разработчиков.
РЕДАКТИРОВАТЬ: Являются ли сгенерированные классы частичными и часто ли меняются имена и номера фактических классов? Поскольку, если сгенерированное содержимое кода не сильно перемещается, вы можете просто создать другой файл кода и просто объявить сгенерированный частичный класс, чтобы украсить их атрибутом GeneratedCodeAttribute. Один раз это спасло мне жизнь (и мое время!).
Лучшее, что вы можете сделать в этом случае, - это подавить конкретное предупреждение в проекте, который содержит сгенерированный код. Вы можете сделать это в Project Properties на вкладке Build. Это не идеально, но это лучшее, что вы можете сделать, если не учитывать прагмы в сгенерированном коде.