Ho una soluzione abbastanza complessa, contenente 10 progetti oltre ai progetti di test. Si tratta di una rete di applicazioni distribuite & servizi che comunicano tramite servizio remoto; quindi avere gli assembly referenziati corretti (versioni &) è fondamentale. Ecco perché voglio che tutto sia compilato e racchiuso in una sola build.Costruisci l'intera soluzione ma aggiungi i simboli globali di compilazione condizionale per un solo progetto
Una delle applicazioni è uno strumento demo/analisi che esegue un sottoprocesso di un'altra, molto più grande, basata sull'input dell'utente e visualizza i risultati; In questo modo gli ingegneri hanno uno strumento per aiutare a modificare le loro impostazioni per "il grande calcolo". Ovviamente questo sottoprocesso è contenuto in un altro assembly, e gran parte dei risultati te presentati agli ingegneri è generata da
#if ENABLE_TRACE_MATCHING
Trace.WriteLine("Some engineering output");
#endif
Il mio problema è che i simboli di compilazione condizionale nelle impostazioni del progetto sono limitati a un'assemblea che del progetto, e fanno non propagare su assembly referenziati. Come posso configurare la mia costruire in modo tale che tutti i progetti saranno costruiti senza ENABLE_TRACE_MATCHING in fase di definizione, tranne che per il progetto un debug/analisi-app in cui tutti i progetti a cui fa riferimento/assiemi devono essere compilati con ENABLE_TRACE_MATCHING essere definito
Inoltre non posso sostituire #if ENABLE_TRACE_MATCHING di #if DEBUG, poiché ciò consentirebbe un sacco di output diversi che i nostri ingegneri non saprebbero come gestire.
Grazie in anticipo.
PS: Se pensi che il mio codice profuma, allora sono d'accordo. Inoltre: in genere non è il mio codice;)
ho dimenticato di dire: 'tutto C# e .NET 3.5 – user588939