5

Sul nostro continuo server di integrazione (Teamcity 5.1.3) abbiamo uno script msbuild che crea automaticamente le nostre applicazioni.Come disabilitare "avviso come errore" solo per i file generati? (MSBuild)

Quando permettiamo "Avviso come errore": in Visual Studio, è costruire bene (ignora i metodi all'interno di "*" file .designer.cs Ma sul server di build abbiamo sempre visualizzato il seguente errore:.

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

Lo script MSBuild che viene utilizzato è simile al seguente:

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

posso capire il motivo per cui lo fa, ma ci deve essere un modo per dire MSBuild di ignorare i commenti mancanti nel file generati

?

a cura

Scavando un po 'più avanti: In Visual Studio Solution abbiamo avuto "Avviso come errore" controllato, ma aggiungiamo anche l'errore 1591 elencato nella casella di testo "Elimina avviso". MSBuild sembra non raccogliere quella casella di testo "sopprimere l'avvertimento" e fallisce la compilazione. Tutto quello che posso fare?

CURA Anche in questo caso Il problema era che MSBuild è stato destinati a qualsiasi CPU (e nella configurazione "ANY CPU" Non abbiamo l'errore 1591 soppressa). Una volta che abbiamo cambiato QUALSIASI CPU per escludere l'errore 1591, tutto è iniziato a essere compilato correttamente sul server di build. Grazie per quelli che hanno aiutato.

risposta

3

No, MSBuild non è schizzinoso sui commenti XML. Qualunque sia lo strumento di analisi del codice che usi. Indovinare qualcosa come StyleCop. Lo fa si lamenta di questo problema esatto, non è molto intelligente, alla pari con i modelli di progetto Windows Form.

Si risolverà questo problema solo se si applica lo stesso tipo di regole di compilazione sugli sviluppatori quando si applica al server di build. Perché impiegherà uno di essi per modificare il codice di non-modifica che è in un file Mumble.Designer.cs e applicare l'attributo [GeneratedCode]. Non è lì ora.

Questo è un problema politico, uno con cui non posso davvero aiutarti. Né i gruppi Microsoft che hanno lavorato a questo in tempi diversi e diversi edifici. Ma puoi contare sul fatto che gli sviluppatori abbaiano rumorosamente se chiedi loro di risolvere il problema.

Rende coerente.

+0

Ho modificato la mia domanda per riflettere le nuove informazioni che ho trovato. Anche se sono ancora un po 'perplesso, la tua risposta mi ha aiutato a scavare nella giusta direzione. – Benoittr

+0

Anche se la risposta non è stata direttamente la domanda (e all'inizio la mia domanda non era completamente chiara ... vedi le modifiche) Sono andato avanti e ho accettato la tua risposta poiché in qualche modo mi ha portato alla risposta che volevo. – Benoittr

2

È possibile ignorare l'avviso dei commenti aggiungendo la seguente proprietà in msbuildcall: nowarn = "1591,1573".

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

Per me il problema si verificava solo su un progetto dll con un riferimento al servizio SOAP. Quando ho aperto le impostazioni del progetto sulla scheda Costruito, ho notato una casella di controllo chiamata "File di documentazione XML". Questo è stato il motivo per cui ogni membro esposto del servizio SOAP ha dovuto fare un commento!

This checkbox enforces /doc option in my build settings

Problemi correlati