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

相關問題