Proyek kami memiliki masalah yang sama di mana kami harus memelihara konfigurasi untuk dev, qa, uat dan prod. Inilah yang kami ikuti (hanya berlaku jika Anda terbiasa dengan MSBuild):
Gunakan MSBuild dengan ekstensi tugas Komunitas MSBuild. Ini termasuk tugas 'XmlMassUpdate' yang dapat 'memperbarui secara massal' entri dalam file XML apa pun setelah Anda memberinya simpul yang benar untuk memulai.
Untuk melaksanakan:
1) Anda perlu memiliki satu file konfigurasi yang akan memiliki entri dev env Anda; ini adalah file konfigurasi dalam solusi Anda.
2) Anda harus memiliki file 'Substitutions.xml', yang hanya berisi entri yang BERBEDA (sebagian besar pengaturan aplikasi dan ConnectionStrings) untuk setiap lingkungan. Entri yang tidak berubah di lingkungan tidak perlu dimasukkan dalam file ini. Mereka dapat tinggal di file web.config dari solusi dan tidak akan tersentuh oleh tugas
3) Dalam file build Anda, panggil saja tugas pembaruan massal XML dan berikan lingkungan yang tepat sebagai parameter.
Lihat contoh di bawah ini:
<!-- Actual Config File -->
<appSettings>
<add key="ApplicationName" value="NameInDev"/>
<add key="ThisDoesNotChange" value="Do not put in substitution file" />
</appSettings>
<!-- Substitutions.xml -->
<configuration xmlns:xmu="urn:msbuildcommunitytasks-xmlmassupdate">
<substitutions>
<QA>
<appSettings>
<add xmu:key="key" key="ApplicationName" value="NameInQA"/>
</appSettings>
</QA>
<Prod>
<appSettings>
<add xmu:key="key" key="ApplicationName" value="NameInProd"/>
</appSettings>
</Prod>
</substitutions>
</configuration>
<!-- Build.xml file-->
<Target Name="UpdateConfigSections">
<XmlMassUpdate ContentFile="Path\of\copy\of\latest web.config" SubstitutionsFile="path\of\substitutionFile" ContentRoot="/configuration" SubstitutionsRoot="/configuration/substitutions/$(Environment)" />
</Target>
ganti '$ Environment' dengan 'QA' atau 'Prod' berdasarkan pada apa. Anda sedang membangun. Perhatikan bahwa Anda harus mengerjakan salinan file konfigurasi dan bukan file konfigurasi yang sebenarnya itu sendiri untuk menghindari kemungkinan kesalahan yang tidak dapat dipulihkan.
Jalankan saja file build dan kemudian pindahkan file konfigurasi yang diperbarui ke lingkungan penyebaran Anda dan Anda selesai!
Untuk ikhtisar yang lebih baik, baca ini:
http://blogs.microsoft.co.il/blogs/dorony/archive/2008/01/18/easy-configuration-deployment-with-msbuild-and-the-xmlmassupdate-task.aspx