Bir ASP.NET web uygulaması projesini ( ASP.NET web sitesini DEĞİL ) üretime dağıtmak için kullandığınız farklı teknikler / araçlar arıyorum.
Sürekli Entegrasyon Derleme sunucunuzun ikilileri bir yerde bıraktığı ve ilk kullanıcı isteğinin bu ikililere ulaştığı zaman arasında gerçekleşen iş akışıyla özellikle ilgileniyorum.
Bazı özel araçlar mı yoksa sadece XCOPY mi kullanıyorsunuz? Uygulama nasıl paketlenir (ZIP, MSI, ...)?
Bir uygulama ilk kez konuşlandırıldığında Uygulama Havuzunu ve Sanal Dizini nasıl kurarsınız (bunları manuel olarak mı yoksa bazı araçlarla mı oluşturuyorsunuz)?
Statik bir kaynak değiştiğinde (CSS, JS veya görüntü dosyası) tüm uygulamayı mı yoksa yalnızca değiştirilen kaynağı mı yeniden dağıtırsınız? Bir derleme / ASPX sayfası değiştiğinde nasıl olur?
Belirli bir uygulama için dağıtılan tüm sürümleri takip ediyor musunuz ve bir şeyler ters giderse, uygulamayı önceki bilinen çalışma durumuna geri yükleme prosedürleriniz var mı?
Önceki listeyi tamamlamaktan çekinmeyin.
Ve işte ASP.NET uygulamalarımızı dağıtmak için kullandığımız şey:
- Çözüme bir Web Dağıtım Projesi ekliyoruz ve ASP.NET web uygulamasını oluşturmak için kuruyoruz
- Çözüme bir Kurulum Projesi ( Web Kurulum Projesi DEĞİL) ekliyoruz ve Web Dağıtım Projesinin çıktısını alacak şekilde ayarlıyoruz
- Özel bir yükleme eylemi ekliyoruz ve OnInstall olayında, System.DirectoryServices.DirectoryEntry kullanarak IIS'de bir Uygulama Havuzu ve Sanal Dizin oluşturan özel bir derleme .NET derlemesi çalıştırıyoruz (Bu görev yalnızca bir uygulama ilk dağıtıldığında gerçekleştirilir) . IIS'de birden fazla Web Sitesini, Sanal Dizinler için Kimlik Doğrulamayı ve Uygulama Havuzları için kimlik ayarlamayı destekliyoruz.
- Kurulum Projesi'ni oluşturmak için TFS'ye özel bir görev ekliyoruz (TFS, Kurulum Projelerini desteklemiyor, bu nedenle MSI'yı oluşturmak için devenv.exe'yi kullanmak zorunda kaldık)
- MSI canlı sunucuya yüklenir (MSI'nın önceki bir sürümü varsa, önce kaldırılır)