【问题标题】:Suppress Xml warning for ServiceReference .cs file抑制 ServiceReference .cs 文件的 Xml 警告
【发布时间】:2013-01-28 21:55:33
【问题描述】:

使用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 cmets。

【问题讨论】:

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


    【解决方案1】:

    即时更新预生成的 .cs 文件将 cause all sorts of issues with Visual Studio, since it will use the in-memory copy of the files。由于源代码控制集成使文件成为只读文件并要求在每次构建后签入文件,这将非常令人恼火。

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

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

    【讨论】:

    • 好主意,杰西,试试看。但肯定有比将服务引用移动到自己的项目更好的方法来解决这个问题吗?我对 CSProj 文件或 MSBuild 了解不多,但在阅读了您的链接页面后,我想知道是否可以使用与我的问题类似的示例来定位预构建?
    • 是的,它可以,但结果是源代码控制集成变得疯狂。每次构建都会导致许多待处理的更改。您可以使您的代码变得智能,这样它就不会重新更新文件,这应该可以工作。不过我更喜欢这个,它更容易配置,并且对所有参与的项目成员来说更容易理解。
    • 感谢您的回答。我可能不得不问另一个问题,但只是想知道如何使用相同的生成代码绕过 StyleCop 警告?当我解决这个问题时,我有这样的期待!
    • 没关系,我刚刚意识到您的方法也可以解决 Stylecop 问题(duh)。如果可行,将测试并标记为已接受
    • 它解决了大多数检查语法、编码实践、文档等工具的问题。这正是我喜欢它的原因。要正确消除这些问题,您需要手动创建自定义类并为其添加正确的 [DataContract] 属性,基本上是手动构建整个服务客户端。在我看来工作太多了。
    【解决方案2】:

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

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

    【讨论】:

    • 脚注:这可能不起作用,因为即使服务引用是内部的,生成的事件也会被标记为公共。
    猜你喜欢
    • 2016-12-24
    • 1970-01-01
    • 2011-03-31
    • 2019-10-22
    • 2014-12-19
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多