5

在我们的持续集成服务器(Teamcity 5.1.3)上,我们有一个自动构建应用程序的msbuild脚本。如何仅禁用生成文件的“警告为错误”? (MSBuild)

当我们启用了“的警告当作错误”:在Visual Studio中,它建精(它忽略方法中“*了.Designer.cs”的文件,但在构建服务器,我们总是收到以下错误:

[(Rebuild target(s)):] somefile.Designer.cs(XX, XX): error CS1591: Warning as Error: Missing XML comment for publicly visible type or member... 

正在使用的MSBuild的脚本是这样的:

<MSBuild Projects="proj\$(ProjectName).sln" 
     Targets="Clean;Rebuild" 
     Properties="Configuration=Release" 
     StopOnFirstFailure="True"> 
</MSBuild> 

我可以理解为什么这样做,但必须有办法告诉的MSBuild忽略生成的文件,缺少的注释

EDITED

挖远一点: 在我们测试过“的警告当作错误” Visual Studio解决方案,但我们还可以添加在“禁止警告”文本框中列出的错误1591。 MSBuild似乎没有拿起那个“压制警告”文本框,并且构建失败。我能做什么?

EDITED再次 的问题是,在的MSBuild靶向任何CPU(并在 “ANY CPU” 配置我们没有抑制错误1591)。一旦我们改变了任何CPU来排除错误1591,它就开始在构建服务器上正确构建。感谢那些帮助。

回答

3

不,MSBuild对XML注释并不挑剔。无论您使用的代码分析工具是什么。猜测像StyleCop这样的东西。它确实抱怨这个确切的问题,它不是很聪明,大约与Windows窗体项目模板齐名。

如果您在应用于构建服务器时对开发者强制执行相同类型的构建规则,那么您只能解决此问题。因为它需要其中一个编辑它在Mumble.Designer.cs文件中的不编辑代码并应用[GeneratedCode]属性。它现在不在。

这是一个政治问题,我不能真正帮助你。也不是在不同时间和不同建筑物上工作的微软团队。但是如果你要求他们解决这个问题,你可以指望开发者大声地吠叫。

使其一致。

+0

我已经编辑我的问题,以反映新的信息,我发现。尽管我还是有点困惑,你的回答帮助我朝正确的方向挖掘。 – Benoittr 2010-09-08 22:32:34

+0

甚至很难回答不直接回答问题(我的问题一开始并不完全清楚...看到编辑)我继续接受你的答案,因为它以某种方式让我得到我想要的答案。 – Benoittr 2010-09-09 17:45:57

2

您可以通过在msbuildcall中添加以下属性来忽略注释警告:nowarn =“1591,1573”。

<MSBuild Projects="proj\$(ProjectName).sln" 
    Targets="Clean;Rebuild" 
    Properties="Configuration=Release;nowarn=1591,1573" 
    StopOnFirstFailure="True"> 
</MSBuild> 
0

对我来说,问题只发生在一个带有SOAP服务引用的dll项目上。当我在Built选项卡上打开项目设置时,我注意到一个名为“XML Documentation file”的复选框被选中。这就是迫使每个暴露的SOAP服务成员发表评论的原因!

This checkbox enforces /doc option in my build settings

相关问题