Web.Debug.config ve Web.Release.Config dosyaları ne içindir?


111

Visual Studio 2010 ve MVC 2.0'a yeni yükselttim ve Web.config'in kendisine eklenmiş iki ek dosya olduğunu fark ettim. Bu dosyalar, hata ayıklamayı belirtmek ve belirli ayarları yayınlamak için mi kullanılıyor, böylece ana Web.config dosyasını karıştırmazsınız?

Hata ayıklama ve yayın Web.configs dosyasında sırasıyla yerel ve uzak bir tane varsa, kök Web.config dosyasına bir bağlantı dizesi yerleştirmek bile mantıklı olur mu?

Teşekkürler!

Yanıtlar:


97

Visual Studio 2010'un yeni Web.config dönüştürme özelliğidir. Daha fazla bilgi burada .


Düzenle:

Bu dosyalar, hata ayıklamayı belirtmek ve belirli ayarları yayınlamak için mi kullanılıyor, böylece ana web.config dosyasını karıştırmazsınız?

Üç dosya ile sınırlı değildir, (teoride) ortamınız olduğu kadar çok dosyaya sahip olabilirsiniz. "Üst düzey" Web.config, web yapılandırmanızın bir şablonunu sağlar. Altındaki dosyalar, o ortama özgü değiştirme değerleri sağlar (örneğin, yerel / aşama / test / her neyse için farklı bağlantı dizeleriniz varsa).

Hata ayıklama ve yayın web.configs'de sırasıyla yerel ve uzak bir tane varsa, kök web.config dosyasına bir bağlantı dizesi yerleştirmek bile mantıklı geliyor mu?

Sadece ortamlar arasında değişmeyecek olsaydı mantıklı olurdu. Sizin durumunuzda öyle görünüyor, sizin durumunuzda hayır, onu Web.config dosyasında bırakmak mantıklı olmaz.


12
Bu özellik yarı pişmiş, hatta 4 yıl sonra! Yalnızca Azure / yayınlama paketlerine dağıtılırken çalışır. İşte ilginç bir konu: forums.asp.net/t/1532038.aspx
Nick

12

Bunlar Web.config dönüşüm dosyalarıdır. Visual Studio kullanarak ASP.NET Web Dağıtımından: Web.config Dosya Dönüşümleri : From ASP.NET Web Deployment using Visual Studio: Web.config File Transformations :

Web.config dosyası ayarlarını değiştirme işlemini otomatikleştirmenin iki yolu vardır: Web.config dönüşümleri ve Web Dağıtımı parametreleri. Bir Web.config dönüştürme dosyası, dağıtıldığında Web.config dosyasının nasıl değiştirileceğini belirten XML işaretlemesini içerir. Belirli derleme yapılandırmaları ve belirli yayınlama profilleri için farklı değişiklikler belirtebilirsiniz. Varsayılan derleme yapılandırmaları Debug ve Release'dir ve özel derleme yapılandırmaları oluşturabilirsiniz. Bir yayınlama profili tipik olarak bir hedef ortama karşılık gelir.


1

Herhangi birinin ilgilenmesi durumunda, ortam başına dinamik bir bağlantı dizesine sahip olmak için yazdığım bir şey var. Kodu herhangi bir ortama (Dev, Test, Pre-Prod, Prod ...) bağlantı dizelerini değiştirme endişesi olmadan dağıtmak istedim. Asp.Net MVC 4 ile bunu yapmanın gerçekten iyi bir yolunu bulamadım, bu yüzden her ortam için bir özellikler dosyasına güvenmek için kendi yöntemimi buldum.

Daha iyi bir çözüm olabilir, bir Wicket / Java geçmişinden geliyorum ve yakın zamanda MVC 4 ile geliştirmeye başladım, bu yüzden daha iyi bir çözüm olması mümkün. Ama dinamik bir bağlantı dizesi için soruma ve cevabıma bir bağlantı:

Asp.net MVC 4 dinamik bağlantı dizesi


-3

Bu, VS'de uzun süredir ihtiyaç duyulan bir şeydi. Maalesef uygulamada bir sorun var gibi görünüyor. Örneğin şu senaryoyu düşünün (VS.2010 Ultimate, tüm SP):

Web.Config

  • Bağlantı yok dizeleri bölümü
  • Tam Üyelik Kullanıcı / Rol / vb. ConnectionStringName = "test" kullanarak sağlayıcı yapılandırması

Web.Release.Config

  • Üyelik yapılandırması yok (ana web.config dosyasında zaten belirtilmiş)
  • "test" adlı CS'yi içeren connectionStrings bölümü

Web.Debug.Config

  • Üyelik yapılandırması yok (ana web.config dosyasında zaten belirtilmiş)
  • "test" adlı CS'yi içeren connectionStrings bölümü

Uygulamayı çalıştırırken aşağıdaki hatayı veriyor:

Bağlantı adı 'test' uygulama yapılandırmasında bulunamadı veya bağlantı dizesi boş.

Başka bir deyişle, bağlantı dizesi öğeleri Yayın / Hata Ayıklama tasarım dosyalarında olduğundan ve ana (Web.config) dosyasındaki yapılandırma öğeleri tarafından kullanıldığından , bunu çözemez.


5
Adil olmak gerekirse test, hem hata ayıklama hem de yayın yapılandırma dosyalarınızda adlandırılmış bir bağlantı dizeniz varsa , bu gerçekten sadece ana web.config dosyasında ve uygun bölümler şablonlu olmalıdır. Olduğu gibi, kodu kopyalıyorsunuz, bu, şablonun sizin için çözmesi gereken bir şeydir.
R0MANARMY

3
-1: Bu çok eski gönderi, web yapılandırma dönüşümlerinin nasıl kullanılacağına dair tamamen yanlış bir yorumdu. 1 Aslında bir cevap değildir (sadece yanlış bir şikayet) ve 2 burada ima edildiği gibi unsurların basit bir birleşimi değildir. Açık xsltdeğiştirme komutlarına sahip olmanız gerekir . Bu dönüştürme dosyalarıyla ilgili kafa karışıklığını artıran bir şey için 5 olumlu oy aldığınız için tebrikler :)
Gone Coding
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.