5

Sur notre serveur d'intégration continue (Teamcity 5.1.3), nous avons un script msbuild qui construit automatiquement nos applications.Comment désactiver "warning as error" pour les fichiers générés seulement? (MSBuild)

Lorsque nous activons « Attention comme erreur »: dans Visual Studio, il construit bien (il ignore les méthodes dans « * » .designer.cs fichiers, mais sur le serveur de build que nous recevons toujours l'erreur suivante:.

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

Le script MSBuild qui est utilisé ressemble à ceci:

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

Je peux comprendre pourquoi il fait cela, mais il doit y avoir un moyen de dire msbuild d'ignorer manquants commentaires dans les fichiers générés

?

ÉDITÉE

Creuser un peu plus loin: Dans la solution Visual Studio nous avions « Attention comme erreur » cochée mais nous ajoutons également erreur 1591 répertoriés dans la zone de texte « Supprimer l'avertissement ». MSBuild ne semble pas ramasser cette zone de texte "supprimer l'avertissement" et échoue la construction. Tout ce que je peux faire?

Encore une fois ÉDITÉ Le problème était que MSBuild était ciblez une unité centrale de traitement (et dans la configuration "ANY CPU" On n'a pas supprimé l'erreur 1591). Une fois que nous avons changé tout processeur pour exclure l'erreur 1591, tout a commencé à se construire correctement sur le serveur de construction. Merci pour ceux qui ont aidé.

Répondre

3

Non, MSBuild n'est pas très pointilleux sur les commentaires XML. Quel que soit l'outil d'analyse de code que vous utilisez. Deviner quelque chose comme StyleCop. Il se plaindre de ce problème exact, ce n'est pas très intelligent, à peu près au même niveau que les modèles de projet Windows Forms.

Vous ne parviendrez jamais à résoudre ce problème si vous appliquez le même type de règles de construction sur les devs que vous appliquez au serveur de build. Parce qu'il faudra l'un d'entre eux pour modifier le code ne pas éditer qu'il est dans un fichier Mumble.Designer.cs et appliquer l'attribut [GeneratedCode]. Ce n'est pas là maintenant.

C'est un problème politique, je ne peux pas vraiment vous aider. Ni les groupes Microsoft qui ont travaillé sur cela à des moments différents et des bâtiments différents. Mais vous pouvez compter sur les devs aboyer bruyamment si vous leur demandez de résoudre le problème.

Rendez-le cohérent.

+0

J'ai modifié ma question pour refléter les nouvelles informations que j'ai trouvé. Bien que je sois encore un peu perplexe, votre réponse m'a aidé à creuser dans la bonne direction. – Benoittr

+0

Même difficile la réponse ne répondait pas directement à la question (et ma question n'était pas totalement claire au début ... voir les modifications) Je suis allé de l'avant et j'ai accepté votre réponse, car cela m'a amené à la réponse que je voulais. – Benoittr

2

Vous pouvez ignorer l'avertissement de commentaires en ajoutant la propriété suivante dans votre msbuildcall: nowarn = "1591,1573".

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

Pour moi, le problème ne se produisait que sur un projet dll avec une référence de service SOAP. Lorsque j'ai ouvert les paramètres du projet sur l'onglet Construire j'ai remarqué une case à cocher appelée "Fichier de documentation XML" est cochée. C'est la raison pour laquelle tous les membres exposés du service SOAP ont été obligés de faire un commentaire!

This checkbox enforces /doc option in my build settings