9

Proje oluşturma ve dağıtımı otomatik olarak yapmak için bazı öneriler arıyorum.Asp.net ile kullanım için iyi bir yapı otomasyonu ve dağıtım süreci nedir?

Güncel geliştirme kurulumumuz, dev sunucusu oluşturmak için ASP.NET, SVN, CCNET ve bir MSBuild komut dosyasını kullanmaktadır. CCNET yerine Cruise'a geçmeyi düşünüyorum, bunun bana zaten sahip olmadığım ekstra bir şey verip vermediğinden emin değilim.

Otomatikleştirmek istediğim, canlı siteyi yeni değişikliklerle güncellemek için otomatik bir yapı oluşturulduktan sonraki işlemdir. Site güncellemeleri, temel site güncellemelerinin yanı sıra kod ve/veya veritabanı değişiklikleri olabilen istemci güncellemelerini de içerebileceği için sürecin yeterince esnek olması ve bu senaryoları ele alabilmesi gerekir.

Bunun için benim ilham kaynağımdan biri, her ay güncellemeler yaparak harcanan bitmeyen saatlerin yanı sıra this video'dan geldi.

+0

Sadece 6 yıl sonra bir güncelleme; [Uygulama sürümü otomasyonu] (https://en.wikipedia.org/wiki/Application_release_automation) araçları tam olarak bunun için tasarlanmıştır. BuildMaster buradaki araçlardan biridir ve [bu eğitim] (http://inedo.com/support/tutorials/building-and-deploying-a-net-web-application-using-buildmaster) belirtilen süreci özetlemektedir. –

cevap

4

Küçük veya kişisel projeler için, Ben JetBrains tarafından ücretsiz (ve mükemmel) TeamCity gibi bir şey kullanmanızı öneriyoruz. Bir birim test otomasyonu, sürekli entegrasyon ve bir yapının ardından meydana gelenler için kurallar (farklı konumlara taşımak dahil). En iyi büyük takımlar için

, ben aslında özel MSBuild görevler şeklinde inşa otomasyon biraz buldum ve RoboCopy çalışır. Bu işlemin bölümlerini otomatikleştirmek için MSBuild & RoboCopy kullanarak ortamlar arasında oluşturulmuş olan bu güzel kombinasyon, ortamlar arasında temiz aralıklar oluşturur (çok az "oops ile" hataların olduğunu itmek istemedim "). Ayrıca, tanıtımdan önce KG incelemelerinin yapılmasına da olanak tanır.

Güncelleme 2014/07/31:

Ben başarı ile custom TFS build templates kullandım. Biraz karmaşıklar, ama onlarla birkaç harika şeyler yapabilirsin.

GitHub'da barındırılan açık kaynaklı projeler için (NuGet kitaplıkları gibi), AppVeyor'u yenebileceğinizi düşünmüyorum. Komple yapı ve NuGet dağıtım otomasyonuna sahip Mailchimp.NET gibi birkaç projem var.

+1

Şimdi, CruiseControl.NET'ten TeamCity'ye yükselttim ve sevdim. Bu, özel MSBuild komut dosyaları ile bile kullanmak çok daha kolay oldu. –

0

Geçmişte Nant'ı benzer görevler için çok şansla kullandım. Otomatik yapınızı kullanarak başlatabilirsiniz. (http://nant.sourceforge.net/)

daha kapsamlı bir şey wix kontrol edebilirsiniz isterseniz (http://wix.sourceforge.net/)

Artık her şey bir autmatic inşa canlı siteyi güncellemek istiyorum başladı gerçekten emin misin? Yoksa cc aracını kullanarak bir inşayı başlattığını, sonra da yaşamak için bir yapı oluşturduğunu mu kastediyorsun?

Bir dosyanın yeni sürümüne bakıldığında canlı site güncellemesine sahip olmaktan nefret ediyorum.

Veritabanı güncelleştirmeleriniz muhtemelen en zorlayıcı özellik olacaktır. Ancak, veritabani güncellemesi için kontrol edilen bir değişiklik betiği olduğu sürece, bu kötü değildir.

+0

Şu anda 2 derleme türümüz var. Bir, bir dev yapı ve diğeri bir sürüm. Dev yapıları, kodun kontrolünden sonra her xx dakikada bir çalıştırılır ve ünite testlerini çalıştırırken, serbest bırakma sadece bir kez başlattığımızda ve bir dev yapının çoğunun yaptığı ancak sürüm modunda etiketlendiğinde SVN. –

0

Kod değişikliklerinizi dağıtmak için iki ana işlev gibi görünüyor: 1. Dosya kopyalama ve 2. DB Komut Dosyası Değişikliklerini Çalıştırma. MsBuild Community Tasks'u kullanarak bakarsanız, yol boyunca size yardımcı olabilecek pek çok kullanışlı kurulum görevi vardır. SqlExecute ve RoboCopy, kullanmanız gereken her şey olacakmış gibi geliyor. Bu, proje dosyalarınızı yapı davranışlarını genişletecek şekilde değiştirmenizi gerektirecektir, ancak bu yapıldıktan sonra, yapılan işlemin el ile yapılan bölümünü "komut dosyası" haline getirebilirsiniz.

İlgili konular