2009-08-03 19 views

risposta

10

Quello che vorrei fare è definire i vari tipi di build nel Configuration Manager (Build-> Configuration Manager) e configurare ciascuna delle costanti richieste su ciascuno dei tipi di build. È quindi possibile fare in modo che ciascun membro del team selezioni semplicemente il tipo di build che desidera eseguire e utilizzerà automaticamente le costanti appropriate. (Penso che il tipo di build utilizzato più di recente sia archiviato nel file .suo, che è "opzioni utente della soluzione" e normalmente non verrebbe eseguito il check-in sul controllo del codice sorgente, quindi questo verrà mantenuto in modo specifico per ciascun utente).

È possibile definire le costanti di pre-processore sulla riga di comando del compilatore C# utilizzando /define. interruttore. ma avrai il problema di come chiamare questo. Qualsiasi modifica apportata alle proprietà del progetto per utilizzarla verrà salvata nel file csproj. Dovresti invece eseguire tutto il tuo edificio dalla riga di comando che sono sicuro che non vorrai. Puoi anche definirli negli script di msbuild, ma avresti lo stesso problema.

8

Questa è una vecchia domanda, ma su un sospetto ho stancato qualcosa e ha funzionato. Risulta che è possibile definire i simboli condizionali nel file csproj.user. Presumo che la stessa cosa funzionerebbe per altre lingue, ma non ho provato.

Quindi aggiungere qualcosa come il seguente a csproj.user.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <DefineConstants>MySpecialConstant, TestBlahBlah</DefineConstants> 
</PropertyGroup> 

Io in realtà come soluzione @SimonPStevens meglio perché abbraccia TFS, invece di nascondersi. A volte, tuttavia, questo è solo più facile ...

Problemi correlati