7

使用MVC4and VS2012,我正在使用 a 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注释。

4

2 回答 2

6

即时更新预生成的 .cs 文件将导致 Visual Studio 出现各种问题,因为它将使用文件的内存副本。由于源代码控制集成使文件成为只读文件并要求在每次构建后签入文件,这将非常令人恼火。

您还可以通过调整其属性来使您的服务客户端成为内部的。根据您的设置,文档生成不会抱怨任何外部不可见的方法。这可能仍会触发 StyleCop、代码分析或 Resharper 警告...

所以我通常做的是,我将服务引用粘贴在他们自己的 Visual Studio 项目中,将生成的代码公开并关闭整个项目的文档生成。这还有一个优点,即您的服务引用将使用相同的绑定,而不管您将它包含在哪个项目中。

于 2013-02-13T11:13:15.343 回答
1

我还发现我可以在创建时设置Service Referenceas ,这可以解决摘要问题。InternalXml

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

于 2013-02-13T13:35:16.117 回答