2014-12-05 19 views
5

So come selezionare i file che voglio copiare nella directory di output della mia build tramite Properties => Copy Always, ma non sono stato in grado di trovare un modo per copiare un file diverso a seconda del tipo di build.Copia file diversi nella directory di output per il rilascio e il debug?

Ho due file di configurazione separati, uno impostato per lo sviluppo locale (cioè deve essere copiato solo su debug build) e uno che è impostato per l'ambiente server (cioè deve essere copiato solo su release build).

Qualcuno sa come ottenere questo tipo di funzionalità condizionale?

+1

controllo la risposta di Romeo nella parte inferiore della pagina: http://stackoverflow.com/questions/8082662/how-to-select-different-app-config-for-several-build-configurations – Bayeni

+0

Ci proverò, ma sembra che sia principalmente per il file VS app.config. Funzionerà per copiare il mio file di configurazione personalizzato letto dalla mia app? – PseudoPsyche

+0

È un'applicazione che verrà eseguita in IIS? (Ci sono funzionalità che conosco incorporate per farlo ma funzionano solo su ASP.NET e progetti simili) –

risposta

5

Attualmente ho conseguito la funzionalità desiderata utilizzando una leggera versione modificata della risposta in questo post che @Bayeni condiviso: https://stackoverflow.com/a/8083060/1428743

Questo sta attualmente lavorando per me, ma se c'è un modo migliore per andare su questo per favore fatemelo sapere.

<ItemGroup Condition=" '$(Configuration)' == 'Debug' "> 
    <Content Include="local.cfg"> 
     <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
    </Content> 
    </ItemGroup> 
    <ItemGroup Condition=" '$(Configuration)' == 'Release' "> 
    <Content Include="release.cfg"> 
     <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
    </Content> 
    </ItemGroup> 
+0

Un problema con questo è che copierà due diversi nomi di file nella directory di destinazione. –

+0

Attualmente sto gestendo questo con una direttiva preprocessore per selezionare il file di configurazione corretto in base al tipo di build. – PseudoPsyche

0

Perché non usi un evento PostBuild e chiami xCopy per copiare i file che ti servono?

+0

C'è qualche vantaggio in questo rispetto al metodo suggerito nel post condiviso da @Bayeni? L'aggiunta di voci di 'Item Group' condizionali con file include nel file' .csproj'? – PseudoPsyche

+0

Ho aggiunto una risposta a questa domanda per mostrare il metodo che attualmente funziona per me. Se ci sono dei benefici alla soluzione proposta, si prega di commentare. – PseudoPsyche

+0

È simile all'opzione '' ma devi scegliere di chiamare un numero di programmi (xCopy) e ottenere anche un output (ad esempio un file di registro) – Chris

Problemi correlati