Di Visual Studio 2010 dan di atas, Anda sekarang memiliki kemampuan untuk menerapkan transformasi ke web.config Anda tergantung pada konfigurasi build.
Saat membuat web.config, Anda dapat memperluas file di explorer solusi, dan Anda akan melihat dua file:
- Web.Debug.Config
- Web.Release.Config
Mereka berisi kode transformasi yang dapat digunakan untuk
- Ubah string koneksi
- Hapus jejak dan pengaturan debugging
- Daftarkan halaman kesalahan
Lihat Web.config Transformation Syntax untuk Penerapan Proyek Aplikasi Web di MSDN untuk informasi lebih lanjut.
Dimungkinkan juga, meskipun secara resmi tidak didukung, untuk menerapkan jenis transformasi yang sama ke app.config
file aplikasi non web . Lihat blog Phil Bolduc mengenai cara memodifikasi file proyek Anda untuk menambahkan tugas baru ke msbuild.
Ini adalah permintaan lama pada Visual Studio Uservoice .
Sebuah ekstensi untuk Visual Studio 2010 dan atas, " SlowCheetah ," tersedia untuk mengurus menciptakan transformasi untuk setiap file konfigurasi. Dimulai dengan Visual Studio 2017.3, SlowCheetah telah diintegrasikan ke dalam IDE dan basis kode dikelola oleh Microsoft. Versi baru ini juga mendukung transformasi JSON.
Pierre-Alain Vigeant
sumber
Web.Debug.Config
danWeb.Release.Config
, Anda mungkin perlu klik kananWeb.Config
dan klikAdd Config Transforms
.The
<appSettings>
tag di web.config mendukung atribut file yang akan memuat konfigurasi eksternal dengan itu set sendiri kunci / nilai. Ini akan mengesampingkan pengaturan apa pun yang Anda miliki di web.config Anda atau menambahkannya.Kami mengambil keuntungan dari ini dengan memodifikasi web.config kami pada waktu instal dengan atribut file yang sesuai dengan lingkungan situs sedang diinstal. Kami melakukan ini dengan menghidupkan installer kami.
misalnya;
catatan:
sumber
restartOnExternalChanges
yang akan memperlakukan file-file itu seolah-olah mereka adalah web.configs. Sumber: learnable.com/books/…Sudahkah Anda melihat proyek penyebaran web?
http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en
Ada versi untuk VS2005 juga, jika Anda tidak pada 2008.
sumber
Saya juga ingin tahu. Ini membantu mengisolasi masalah bagi saya
Saya kemudian menyimpan connectionStrings.config serta "{host} connectionStrings.config". Ini masih merupakan masalah, tetapi jika Anda melakukan ini untuk bagian yang berbeda di dua lingkungan, Anda dapat menggunakan dan versi web.config yang sama.
(Dan saya tidak menggunakan VS, btw.)
sumber
Saya menggunakan NAnt Build Script untuk digunakan ke lingkungan saya yang berbeda. Saya memilikinya memodifikasi file konfigurasi saya melalui XPath tergantung pada di mana mereka sedang digunakan, dan kemudian secara otomatis menempatkan mereka ke dalam lingkungan itu menggunakan Beyond Compare .
Butuh satu atau dua menit untuk pengaturan, tetapi Anda hanya perlu melakukannya sekali. Kemudian file batch mengambil alih, sementara saya mengambil secangkir kopi lagi. :)
Inilah artikel yang saya temukan di sana.
sumber
Pada satu proyek di mana kami memiliki 4 lingkungan (pengembangan, pengujian, pementasan, dan produksi) kami mengembangkan sistem di mana aplikasi memilih konfigurasi yang sesuai berdasarkan nama mesin yang digunakan.
Ini berhasil bagi kami karena:
Ini bekerja dengan baik untuk kami dalam hal ini, tetapi mungkin tidak akan berhasil di mana-mana.
sumber
Editor konfigurasi Perpustakaan Perusahaan dapat membantu Anda melakukan ini. Ini memungkinkan Anda untuk membuat file konfigurasi dasar dan kemudian delta untuk setiap lingkungan. Anda kemudian dapat menggabungkan konfigurasi dasar dan delta untuk membuat web.config khusus lingkungan. Lihatlah informasi di sini yang membawa Anda melaluinya lebih baik daripada yang saya bisa.
sumber
Anda juga bisa menjadikannya langkah pasca-pembangunan. Setup konfigurasi baru yang merupakan "Deploy" selain Debug dan Rilis, dan kemudian salin langkah post-build di web.config yang benar.
Kami menggunakan build otomatis untuk semua proyek kami, dan dengan itu script build memperbarui file web.config untuk menunjuk ke lokasi yang benar. Tetapi itu tidak akan membantu Anda jika Anda melakukan semuanya dari VS.
sumber
Ini adalah salah satu manfaat besar menggunakan machine.config. Di pekerjaan terakhir saya, kami memiliki lingkungan pengembangan, pengujian dan produksi. Kita bisa menggunakan machine.config untuk hal-hal seperti string koneksi (ke mesin SQL dev / test / prod yang sesuai).
Ini mungkin bukan solusi bagi Anda jika Anda tidak memiliki akses ke mesin produksi yang sebenarnya (seperti, jika Anda menggunakan perusahaan hosting di host bersama).
sumber
Anda juga dapat menggunakan ekstensi "Konfigurasi Konfigurasi" bekerja sama dengan "SlowCheetah",
sumber