5

Mi chiedo se sia possibile creare diversi programmi di installazione che includono file diversi per un progetto di distribuzione esclusivamente in base alla configurazione di build (Debug/Release)?Progetto di distribuzione di Visual Studio: file condizionali in base alla configurazione di build

voglio fare questo perché:

  1. Durante fase di debug, vorremmo installare alcuni file supplementari di debug (* .pdb), insieme con i binari sulla macchina di prova in modo che se qualcosa va storto , possiamo sapere cosa sta succedendo
  2. Durante la fase di rilascio, non vogliamo che gli utenti abbiano questi file di debug. E non vogliamo renderlo un'opzione per gli utenti di installare * pdb - la maggior parte di loro non sa per cosa sono questi file e un'opzione per loro causerà solo confusione

Le difficoltà che sto attualmente affrontando :

  1. Ho provato ad aprire il file di progetto di distribuzione (* .vdproj) ed è molto diverso da altri tipi di progetti come CSharp. I file di progetto di distribuzione non sono XML e non riesco a scrivere qualcosa del tipo:.
  2. Ho controllato il sito di Microsoft: http://msdn.microsoft.com/en-us/library/cz6k1z02%28v=vs.80%29.aspx Non ci sono condizioni di distribuzione correlate alla configurazione di build.
  3. Dal momento che voglio impostare la condizione in base alle configurazioni di costruzione, suppongo che il file di progetto dovrebbe almeno essere in grado di dire quale sia la configurazione selezionata corrente. Tuttavia, il Configuration Manager per la distribuzione è molto semplice: posso modificare solo l'output, l'imballaggio, la compressione e l'URL di installazione. Non riesco a definire altre macro come avrei potuto per altri tipi di progetti (ad esempio CSharp)
+0

sei finito trovare il modo di fare questo? – JohnnyFun

+0

No, non la penso così ... Non penso sia stato possibile grazie allo studio di Visual che stavo usando in quel momento. Se ricordo bene, la cosa più vicina che si può ottenere è aggiungere un nuovo ambiente (in particolare 'InstallPDB' o qualcosa del genere). Quindi, invece di compilare qualsiasi cosa, puoi anche eseguire comandi DOS arbitrari. Non sono sicuro dei nuovi studi di Visual poiché non sto più programmando in Windows. –

+0

Sembra buono. Ho finito per scrivere uno script di nodo che viene eseguito come evento post-build per il mio progetto e passa la configurazione a, e che copia condizionatamente i file su dove l'installer li ottiene. Funziona alla grande. Grazie per l'aggiornamento però! – JohnnyFun

risposta

0

Solo per aggiungere i miei due centesimi, ho avuto un'esigenza simile nel mio progetto WPF. Ho diversi file .config per diverse configurazioni di build (Debug, QA e Release) che sono generati correttamente nella cartella di output/bin/

Ho notato che i file di output per l'output primario elencano il mio file .exe dalla configurazione corretta cartella (es./bin/Release) tuttavia il file .config proviene dalla directory radice del progetto (App.config) e quindi viene rinominato nel nome del mio progetto.

Quindi, per ovviare a questo, io:

  1. creato un evento post-generazione per copiare il file .config il mio generatore per una cartella denominata ConfigDeploy.

    COPIA/Y $ (TargetDir) $ (TargetFileName) .config $ (SolutionDir) ConfigDeploy \ $ (TargetFileName) .config

  2. ignorato la mia file config da output primario facendo clic destro mio articolo Uscita primaria , andare a Proprietà e la fissazione di un "* .config" filtro "ExcludeFilter"

enter image description here

  1. Creato una voce di file al mio file .config al "Programma Cartella File/MyApplica "che punta al file nella cartella ConfigDeploy

Per quanto riguarda i file .pdb, è più semplice.Hai solo bisogno di aggiungere un output del progetto e scegli simboli di debug e quindi scegliere la configurazione è necessario

enter image description here