使用MVC4
和VS2012
,我使用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
条评论。
答案 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
错误的问题,但我会为此创建一个新问题。