2012-12-27 13 views
5

Eventuali duplicati:
C# if/then directives for debug vs releaseIn Visual Studio come aggiungere casi speciali per le versioni di debug e release?

Sto lavorando su un progetto C# e mi piace sapere come aggiungere casi speciali, mentre sto facendo funzionare il programma nel debugger nella modalità di debug Ho accesso a determinate risorse che normalmente non avrei nella versione di rilascio.

Ecco cosa sta succedendo, ho gli strumenti di amministrazione integrati nel programma, che sono solo per il debug, come un pulsante che dice test e metto in codice quello che voglio. Ciò che continua a accadere, dimentico di nascondere quel pulsante e lo rilascio ai client. Mi piacerebbe avere quel pulsante di test solo mentre è in esecuzione in modalità di debug ma non in qualsiasi altro momento.

Questo accende i miei strumenti di amministrazione

rpg_Admin.Visible = true; 

Questo si spegne i miei strumenti di amministrazione

rpg_Admin.Visible = false; 

C'è un modo semplice per fare questo?

if Debug Mode 
    rpg_Admin.Visible = true 

o forse mentre è in esecuzione in Visual Studio è

rpg_Admin.Visible = true 

ma quando è in esecuzione su di essa la propria

rpg_Admin.Visible = false 

Sono in esecuzione su Visual Studio 2010

Grazie.

+0

Caro mod: A mio parere, non è la stessa domanda. Il suo simile, ma non un duplicato esatto. –

risposta

4

Usando il tuo esempio, aggiungere alcune direttive #if/#else/#endif in questo modo:

#if DEBUG 
    rpg_Admin.Visible = true; 
#else 
    rpg_Admin.Visible = false; 
#endif 

Si potrebbe applicare anche gli attributi System.Diagnostics.ConditionalAttribute a qualsiasi codice utilizzato solo nella versione di debug. Ciò rimuoverà completamente qualsiasi codice non necessario dalla build di rilascio. Esempio:

[Conditional("DEBUG")] 
public static void MyDebugOnlyMethod() 
    { 
    } 
+0

Questo è quello che stavo cercando esattamente! Non sapevo che fosse così facile. –

+0

Beh, niente è facile finché non sai come farlo! Ecco perché Stack Overflow è davvero fantastico. –

1

avvolgere il codice di debug in #ifdef DEBUG/# endif:

#ifdef DEBUG 

// debug only code here 

#endif 
+0

hum, per qualche motivo #ifdef non è ben voluto, mi dà un sacco di errori. C'è un posto speciale per questo, sto chiamando subito dopo InitializeComponent(); nella mia forma –

+0

incolla il tuo codice. dovresti essere in grado di usare ifdef ovunque ... –

Problemi correlati