7

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

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

Я нашел подобный ответ here, который ссылается на более обходной путь нашел в этом blog, который предлагает добавить следующее исправление в 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 комментариев.

ответ

6

Обновление предварительно сформированных файлов .cs на лету будет cause all sorts of issues with Visual Studio, since it will use the in-memory copy of the files. И это будет очень раздражать из-за интеграции Source Control, делая файлы доступными только для чтения и требующие проверки файлов после каждой сборки.

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

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

+0

хорошая идея Джесси, попробует. Но, конечно, есть лучший способ решить это, чем перенос служебной ссылки на собственный проект? Я не очень разбираюсь в файлах CSProj или MSBuild, но после прочтения вашей связанной страницы мне интересно, можно ли настроить пребуйл, используя аналогичный пример, как в моем вопросе? – DevDave

+1

Да, возможно, но с интеграцией управления версиями, в результате чего гайки становятся результатом. Каждая сборка приведет к ряду ожидающих изменений. Вы можете сделать свой код умным, чтобы он не обновлял файлы, но должен работать. Я предпочитаю это, но гораздо проще настроить и упростить понимание для всех участников проекта. – jessehouwing

+0

Спасибо за ваш ответ. Возможно, мне придется задать еще один вопрос, но просто интересно, как вы обойдете предупреждения StyleCop с тем же кодом Generatd? Поскольку у меня есть, что с нетерпением ждать, когда я решаю эту проблему! – DevDave

1

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

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

+1

Сноска: Это может не сработать, поскольку созданные события отмечены как общедоступные, даже если служебная ссылка является внутренней. –

Смежные вопросы