Abbiamo un sacco di appSettings
nella nostra applicazione Web ASP.NET, per non parlare delle stringhe di connessione, che cambiano in base all'ambiente. Non solo per ambienti diversi a cui viene distribuita l'applicazione Web, ma anche tra diverse macchine sviluppatrici. Pertanto, cambiarli con una trasformazione Web.config
non è abbastanza buono perché queste trasformazioni non vengono eseguite quando gli sviluppatori eseguono il debug dell'applicazione.
Al momento le impostazioni sono hard-coded in Web.config
ma se uno sviluppatore vuole cambiarle durante lo sviluppo, questo ovviamente significa che il cambiamento è segnalato nel controllo del codice sorgente che è indesiderabile. Queste modifiche non devono essere verificate nel controllo del codice sorgente.
Come possiamo spostare queste impostazioni in modo che possano essere modificate senza influire sul controllo del codice sorgente? In passato ho lavorato a progetti in cui abbiamo utilizzato configSource
per puntare a un file di configurazione esterno che è stato quindi escluso dal controllo del codice sorgente e un file .config.example
è stato inserito al suo posto che è stato copiato in .config
file. Il problema con questo è che, per impostazione predefinita, fornisce una build danneggiata perché questo file di configurazione è mancante fino a quando non viene creato. Vogliamo una build funzionante che possa essere inviata a VSTS per l'implementazione. Come possiamo fare questo mantenendo le impostazioni per-environment separate dal controllo del codice sorgente?