禁止ServiceReference .cs文件的Xml警告

时间:2013-02-13 11:07:16

标签: xml visual-studio-2012 suppress-warnings service-reference

使用MVC4VS2012,我使用Service Reference,自动生成Reference.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条评论。

2 个答案:

答案 0 :(得分: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项目中,使生成的代码公开并关闭整个项目的文档生成。这样做的另一个好处是,无论您将其包含在哪个项目中,您的服务引用都将使用相同的绑定。

答案 1 :(得分:1)

我还发现我可以在创建时将Service Reference设置为Internal,这可以解决Xml摘要问题。

虽然这仍然让我遇到了为生成的代码抑制StyleCop错误的问题,但我会为此创建一个新问题。