5

Auf unserem kontinuierlichen Integrationsserver (Teamcity 5.1.3) haben wir ein msbuild-Skript, das automatisch unsere Anwendungen erstellt.Wie kann "Warnung als Fehler" nur für generierte Dateien deaktiviert werden? (MSBuild)

Wenn wir „Warnung als Fehler“ aktivieren: in Visual Studio, baut es in Ordnung (es ignoriert die Methoden innerhalb „* designer.cs“ Dateien aber auf dem Build-Server, den wir immer die folgende Fehlermeldung:.

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

Das MSBuild-Skript, das verwendet wird, sieht wie folgt aus:

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

kann ich verstehen, warum es das tut, aber es muss ein Weg sein, msbuild zu sagen, fehlt Kommentare in generierten Dateien zu ignorieren

?

EDITED ein wenig weiter Graben: In der Visual Studio-Lösung, die wir „Warnung als Fehler“ überprüft, aber wir auch hinzufügen Fehler 1591 aufgeführt in der „Unterdrückt Warnung“ Textbox hatte. MSBuild scheint dieses "Unterdrückungswarnung" Textfeld nicht aufzunehmen und schlägt den Build fehl. Etwas das ich tun kann?

EDITED Wieder Das Problem war, dass MSBuild jede CPU wurde Targeting (und in der "ANY CPU" -Konfiguration didnt wir unterdrückt Fehler 1591). Sobald wir irgendeine CPU geändert haben, um Fehler 1591 auszuschließen, fing alles richtig an, auf dem Build-Server zu bauen. Danke für die Hilfe.

Antwort

3

Nein, MSBuild ist nicht wählerisch bei XML-Kommentaren. Was auch immer Code-Analyse-Tool Sie verwenden. Vermutung etwas wie StyleCop. Es tut beschweren über dieses genaue Problem, es ist nicht sehr schlau, etwa auf Augenhöhe mit den Windows Forms-Projektvorlagen.

Sie werden dieses Problem nur lösen, wenn Sie die gleiche Art von Erstellungsregeln für die Entwickler erzwingen, die Sie auf den Erstellungsserver anwenden. Weil es einen von ihnen braucht, um den Do-not-Edit-Code zu bearbeiten, der in einer Mumble.Designer.cs-Datei enthalten ist, und das [GeneratedCode] -Attribut anzuwenden. Es ist jetzt nicht da.

Das ist ein politisches Problem, mit dem ich Ihnen nicht wirklich helfen kann. Auch die Microsoft-Gruppen, die zu unterschiedlichen Zeiten und Gebäuden daran gearbeitet haben. Aber Sie können sich darauf verlassen, dass die Entwickler laut bellen, wenn Sie sie bitten, das Problem zu lösen.

Machen Sie es konsistent.

+0

Ich habe meine Frage bearbeitet, die neuen Informationen zu reflektieren ich gefunden. Obwohl ich immer noch etwas verwirrt bin, hat deine Antwort mir geholfen, in die richtige Richtung zu graben. – Benoittr

+0

Selbst die Antwort war nicht direkt auf die Frage zu antworten (und meine Frage war zunächst nicht klar ... siehe die Änderungen) Ich ging voran und akzeptierte deine Antwort, da sie mich irgendwie zu der Antwort führte, die ich wollte. – Benoittr

2

Sie können die Kommentarwarnung ignorieren, indem Sie in Ihrem msbuildcall die folgende Eigenschaft hinzufügen: nowarn = "1591,1573".

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

Für mich trat das Problem nur bei einem DLL-Projekt mit einer SOAP-Dienst-Referenz auf. Als ich die Projekteinstellungen auf der Registerkarte "Erstellt" öffnete, bemerkte ich, dass ein Kontrollkästchen namens "XML-Dokumentationsdatei" aktiviert war. Das war der Grund, warum jedes exponierte Mitglied des SOAP-Dienstes einen Kommentar abgeben musste!

This checkbox enforces /doc option in my build settings