Анализ кода элемента активности VS2013 и XML-документация не будут компилироваться

Мы используем анализ кода в наших проектах, а также включили параметр «Файл XML-документации:» в настройках нашего проекта. Также мы установили для параметра «Рассматривать предупреждения как ошибки» значение «Все».

На вкладке анализа кода мы установили флажок «Подавлять результаты из сгенерированного кода (только управляемый)».

Теперь мы используем элемент Activity в C#, который создаст файл xaml. При создании файлов xaml будут созданы файлы *.g.cs. И теперь анализ кода продолжает жаловаться на эти автоматически сгенерированные классы. Также сборка завершится ошибкой из-за отсутствия XML-документации в файлах *.g.cs.

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

Есть ли способ пропустить эти файлы? Мы хотим, чтобы весь остальной код в проекте соответствовал нашим стандартам анализа кода и XML-документации.

Если бы мы могли каким-то образом отредактировать шаблоны (код генерации), которые генерируют файлы *.g.cs, мы могли бы обойти эту проблему Visual Studio. Но где же эти t4-шаблоны (или это файлы не t4-шаблоны?)




Ответы (1)


Это не имеет ничего общего с анализом кода, поэтому его настройка сгенерированного кода не имеет значения. Компилятор С# генерирует предупреждение (которое вы считаете ошибкой) из-за отсутствия комментария xmldoc для класса и конструктора.

К сожалению, подход, используемый для создания файла .g.cs, жестко запрограммирован в Microsoft.Build.Tasks.Xaml.ClassGenerator (в XamlBuildTask.dll). Он не использует шаблон, и нет возможности переопределить только часть его поведения.

Я вижу только два относительно простых подхода, которые не предполагают замену всего механизма генерации классов:

  1. Создайте свой класс активности с внутренней видимостью вместо общедоступной, если это подходит для вашего сценария (см. http://msdn.microsoft.com/en-us/library/ms754029(v=vs.110).aspx для получения подробной информации).
  2. Переместите только свои действия в отдельный проект, который отключит предупреждение компилятора CS1591.

В любом случае вы можете отправить запрос на http://visualstudio.uservoice.com/ для домена . Генерация файлов g.cs будет переведена на шаблонный подход.

person Nicole Calinoiu    schedule 10.12.2013
comment
Спасибо. Я попробовал первый вариант, но затем он жалуется на «Частичные объявления« файла потока активности xaml »имеют конфликтующие модификаторы доступа». Так что это не сработало. Второй вариант выглядит многообещающе. Так что мы используем это сейчас. - person Dennis; 11.12.2013
comment
Если вы вручную создавали частичные определения классов для своего собственного кода, вам также потребуется изменить их видимость на internal в соответствии с подходом № 1. - person Nicole Calinoiu; 11.12.2013