È possibile avere file web.config diversi per un progetto Team Foundation Server?
-
07-07-2019 - |
Domanda
Ho un semplice sito Web ASP.NET MVC. Ha le modalità di configurazione Debug, Test e Release.
Stiamo usando TFS come controllo del codice sorgente e tracciamento dei bug, ecc. Bello.
Ora, stiamo per iniziare a utilizzare Team Builds per automatizzare un po 'di integrazione continua. Il fatto è che non siamo sicuri di come farlo in modo che se vogliamo creare una build DEBUG o una build RELEASE, anche il file web.config corretto viene inserito nella directory di destinazione. Inoltre, abbiamo alcune sezioni del file web.config estratte in file separati (ad es. La sezione della stringa di connessione o la sezione della chiave della macchina, ecc.). I file di ambiente corretti possono essere inseriti correttamente nella directory di destinazione.
Soluzione
Potresti fare un pre- costruire passo
Supponi di aver effettuato il check-in
- /Debug.Web.Config
- /Release.Web.Config
È possibile scrivere un passaggio di pre-build per verificare il tipo di build e copiare il file .config corretto in
- /Web.Config
Qualcosa di simile
cp $(ConfigurationName).Web.Config $(TargetDir)
In una nota a margine, ASP.net 4.0 avrà il supporto per più Web.Configs
Altri suggerimenti
Per inciso, l'utilizzo di un passaggio pre-build o post-build non funzionerà con Team Foundation Server. Configura automaticamente la sicurezza nella directory di compilazione per impedire che vengano apportate modifiche ai file di configurazione durante il processo di compilazione, sia come eventi pre-build che come eventi post-build. L'unico risultato dell'uso di cp è di restituire un " Accesso negato " di errore.
Guarda le trasformazioni di configurazione. http://msdn.microsoft.com/en-us/library/dd465326.aspx