Подавить предупреждение Xml для ServiceReference.cs-файл


Работая с MVC4 и VS2012, я использую Service Reference, который автоматически генерирует файл Reference.cs. Когда я строю, я получаю десятки предупреждений в виде ошибок, которые читаются

' отсутствует комментарий XML для публично видимого типа или члена...'

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

<Target Name="XamlGeneratedCodeWarningRemoved" AfterTargets="XamlMarkupCompilePass1">
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do echo #pragma warning disable > %%f.temp" />
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do type %%f >> %%f.temp" />
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do copy /y %%f.temp %%f" />
    <Message Text="XamlGeneratedCodeWarningRemoved: @(XamlGeneratedCodeFiles)" />
  </Target>

Но это, кажется, не работает с Reference.cs файл, вероятно, потому, что он нацелен на Xaml? Может ли кто-нибудь сказать мне, как я могу исправить это для работы с файлом Reference.cs или предложить другой способ обойти эту проблему?

Я не могу просто добавить pragma disable в автоматически сгенерированный код или отключить комментарии Xml.
2 7

2 ответа:

Обновление предварительно сгенерированного .cs-файлы на лету будут вызывать всевозможные проблемы с Visual Studio, так как он будет использовать копию файлов в памяти. И это будет очень раздражать из-за интеграции системы управления версиями, делающей файлы доступными только для чтения и требующей, чтобы файлы проверялись после каждой сборки.

Вы также можете сделать свой клиент службы внутренним, настроив его свойства. В зависимости от ваших настроек, генерация документации не будет жаловаться на какие-либо метод, который не виден снаружи. Это все еще может вызвать предупреждение StyleCop, анализ кода или Resharper...

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

Я также обнаружил, что могу задать Service Reference как Internal при создании, что позволяет обойти проблему Xml.

Хотя это все еще оставляет меня с проблемой подавления ошибок StyleCop для сгенерированного кода, но я создам новый вопрос для этого.