2014-05-12 12 views
5

Sto lavorando con un progetto che usa sia C++ che C#. Ho lavorato a un'integrazione disordinata e ho fatto un uso massiccio del messaggio #pragma per richiamare un codice che non è ancora completamente funzionale (interrotto a causa dell'integrazione). Questo è un modo davvero carino per ingombrare il log di build, quindi è facile trovare le cose che devono essere risolte. Il problema è che non riesco a trovare nulla che funzioni allo stesso modo per C#.C'è qualcosa di paragonabile al messaggio #pragma?

Non voglio usare l'attributo obsoleto, non è affatto quello che sto cercando. Ho provato #warn, ma quello genera appena un "avvertimento come errore" che fallisce la costruzione. Di nuovo, non quello che sto cercando (potrei semplicemente usare #error se volessi fallire la build ...).

Per ora inserisco semplicemente i miei messaggi in commenti che possono essere cercati, ma ciò richiede una certa conoscenza di cosa cercare e la motivazione per cercarlo. Chiamare i problemi con un messaggio personalizzato nel registro di generazione è molto preferibile in quanto è difficile da ignorare!

La mia ricerca mi porta a credere che non ci sia un modo per fare ciò che voglio ma volevo vedere se gli esperti sono d'accordo con me o meno. :)

+0

La cosa che Microsoft vorrebbe che tu facessi è creare elementi del Team Foundation Server per tutto ciò che vuoi toccare in seguito. Non so se c'è un modo per farlo direttamente nel codice, mi dispiace. – rumtscho

+1

Come ha detto @ LB2, cosa c'è di sbagliato in '# warning'. Per me fa esattamente questo, produce un avvertimento; non fallendo la costruzione. – MicroVirus

+0

#warning non fallisce la compilazione. Produce solo un avvertimento durante la compilazione. –

risposta

1

#warning fa esattamente quello che vuoi: genera un avviso di compilazione. Questo non fallisce la build.

Forse l'impostazione è abilitata per trattare gli avvisi come errori? Questa impostazione può essere trovata nella configurazione del progetto | Scheda Build.

+0

Il problema è che quando si ottiene il progetto di qualcun altro con più di mille avvisi, l'avviso definito dall'utente non eseguirà il lavoro. – Szybki

+2

@Szybki Se ricevi molti avvisi in C#, probabilmente hai problemi più grandi. Inoltre, gli Avvisi sono lì per avvertirti, quindi se stai iniziando a perdere avvisi a causa della loro quantità, qualsiasi avviso è inutile, non solo quelli di #pragma dell'utente, e, ancora, hai problemi più grandi. – MicroVirus

6

Io di solito utilizzare il seguente codice:

#warning //Todo Finish this method by.... 

#warning non deve essere trattato come un errore, è configurabile in ogni progetto in Configurazione del progetto | Costruire Tab:

enter image description here

Con la descrizione nel avvertimento registro la formazione dovrebbe essere simile alla seguente:

enter image description here

Inoltre, il commento //Todo aggiungerà la descrizione per il built-in elenco delle attività che consente di distinguere tra gli avvisi del compilatore e gli avvisi del compilatore impostato dall'utente:

enter image description here