Ho un’applicazione che sto semplicemente migrando ad Azure. Attualmente utilizzo la trasformazione web.config per gestire la modifica del database che collega gli ambienti string dev / staging / prod. Come è meglio gestire queste stringhe di connessione multiple in Azure?
Nei casi in cui non importa se lo sviluppatore può vedere le credenziali di produzione, è ansible utilizzare le trasformazioni di configurazione di Visual Studio 10 incorporate. Se questo è ciò che stai cercando, procedi nel seguente modo:
1. Naviga nella cartella del progetto di Azure in Esplora file
2. Creare una copia di ServiceConfiguration.cscfg
3. Rinominare la copia in ServiceConfiguration.Base.cscfg
4. Per ogni configurazione di build (ad esempio Dev, Staging, Production), creare un ServiceConfiguration.
5. Apri il tuo file .ccproj in un editor di testo
6. Trova il seguente nodo,
e sostituiscilo con questo (dovrai modificare questo blocco in modo che corrisponda alle tue configurazioni di build):
ServiceConfiguration.cscfg ServiceConfiguration.cscfg ServiceConfiguration.cscfg ServiceConfiguration.cscfg
7. Aggiungi quanto segue alla fine del file .ccproj, appena sopra :
8.Se stai usando un server CI su cui non è installato Visual Studio 10, probabilmente dovrai copiare la cartella C: \ Programmi \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web e il suo contenuto da una macchina di sviluppo al server.
Aggiornamento: come notato da @SolarSteve, potrebbe essere necessario aggiungere uno spazio dei nomi ai file ServiceConfiguration. *. Cscfg. Ecco un esempio di ServiceConfiguration.Base.cscfg:
Personalmente noi:
Per un esempio della class di gestione delle impostazioni che esegue la scansione delle impostazioni dell’applicazione e dell’ambiente cloud per i valori di configurazione, è ansible controllare l’open source Lokad.CQRS per il progetto Windows Azure (vedere CloudSettingsProvider)
È ansible utilizzare CloudConfigurationManager in Azure SDK 1.7 http://msdn.microsoft.com/en-us/LIBRARY/microsoft.windowsazure.cloudconfigurationmanager
Ciò inizia guardando ServiceConfiguration.cscfg ad esempio ServiceConfiguration.Cloud.cscfg per le impostazioni di configurazione. Se non è lì, torna a web.config e app.config
Per esempio
CloudConfigurationManager.GetSetting("StorageConnectionString")
Apparirà nell’appropriato cscfgfile per l’impostazione StorageConnectionString, quindi cercherà il web.config e quindi app.config.
Abbiamo un certo numero di ambienti (dev locale all’interno di dev fabric, dev dev localizzato, test, rilascio che ha 2 versioni: release / prod e release / staging e 20 progetti alcuni dei quali richiedono una certa variabilità nelle impostazioni di configurazione. problema creando un piccolo progetto di “config”, incluse le sottocartelle che corrispondono agli ambienti. Copiamo i file dalla sottocartella a seconda della build che stiamo facendo nella cartella principale del progetto di configurazione, durante ogni compilazione.
Tutti gli altri progetti si collegano al progetto di configurazione per i file .config. Utilizziamo anche file di configurazione parziali per mantenere la follia di ripetere le stesse informazioni per tutto il tempo in vari ambienti.
Spero che questo ti aiuti
Ho avuto lo stesso requisito per la trasformazione di ServiceConfiguration.
Sono andato con la risposta di jmac (grazie!), Ma ho avuto problemi con lo spazio dei nomi nella versione Base:
dopo un po ‘di più, ho scoperto questo di Andrew Patterson (grazie).
quindi il mio file di trasformazione risultante: