Dağıtımı Destekleyen Bir Derleme Tanımı Oluşturma
Team Foundation Server (TFS) 2010'da herhangi bir tür derleme gerçekleştirmek istiyorsanız, takım projenizde bir derleme tanımı oluşturmanız gerekir. Bu konu başlığında, TFS'de yeni bir derleme tanımının nasıl oluşturulacağı ve Takım Derlemesi'nde derleme işleminin bir parçası olarak web dağıtımının nasıl denetlendiği açıklanır.
Bu konu, Fabrikam, Inc adlı kurgusal bir şirketin kurumsal dağıtım gereksinimlerini temel alan bir dizi öğreticinin bir parçasını oluşturur. Bu öğretici serisinde, ASP.NET MVC 3 uygulaması, Windows Communication Foundation (WCF) hizmeti ve veritabanı projesi dahil olmak üzere gerçekçi bir karmaşıklık düzeyine sahip bir web uygulamasını temsil etmek için örnek bir çözüm (Contact Manager çözümü) kullanılır.
Bu öğreticilerin temelindeki dağıtım yöntemi, derleme ve dağıtım işleminin iki proje dosyası tarafından denetlendiği Proje Dosyasını Anlama bölümünde açıklanan bölünmüş proje dosyası yaklaşımını temel alır: biri her hedef ortama uygulanan derleme yönergelerini, diğeri ise ortama özgü derleme ve dağıtım ayarlarını içerir. Derleme zamanında, ortama özgü proje dosyası, tam bir derleme yönergeleri kümesi oluşturmak için ortama bağımsız proje dosyasıyla birleştirilir.
Göreve Genel Bakış
Derleme tanımı, TFS'deki takım projeleri için derlemelerin nasıl ve ne zaman gerçekleştiğini denetleye mekanizmadır. Her derleme tanımı aşağıdakini belirtir:
- Visual Studio çözüm dosyaları veya özel Microsoft Build Engine (MSBuild) proje dosyaları gibi oluşturmak istediğiniz şeyler.
- El ile tetikleyiciler, sürekli tümleştirme (CI) veya geçitli iadeler gibi bir derlemenin ne zaman gerçekleşmesi gerektiğini belirleyen ölçütler.
- Web paketleri ve veritabanı betikleri gibi dağıtım yapıtları da dahil olmak üzere Takım Derlemesi'nin derleme çıkışlarını göndermesi gereken konum.
- Her derlemenin saklanması gereken süre.
- Derleme işleminin diğer çeşitli parametreleri.
Not
Derleme tanımları hakkında daha fazla bilgi için bkz. Derleme sürecinizi tanımlama.
Bu konu başlığında, geliştirici yeni içeriği iade ettiğinde bir derlemenin tetiklenebilmesi için CI kullanan bir derleme tanımının nasıl oluşturulacağı gösterilir. Derleme başarılı olursa, derleme hizmeti çözümü bir test ortamına dağıtmak için özel bir proje dosyası çalıştırır.
Bir derlemeyi tetiklerken şu eylemlerin gerçekleşiyor olması gerekir:
- İlk olarak, Takım Derlemesi çözümü oluşturmalıdır. Bu işlemin bir parçası olarak Team Build, çözümdeki web uygulaması projelerinin her biri için web dağıtım paketleri oluşturmak üzere Web Yayımlama İşlem Hattı'nı (WPP) çağırır. Takım Derlemesi, çözümle ilişkili tüm birim testlerini de çalıştırır.
- Çözüm derlemesi başarısız olursa, Takım Derlemesi başka bir işlem gerçekleştirmemelidir. Birim testi hataları derleme hatası olarak ele alınmalıdır.
- Çözüm derlemesi başarılı olursa, Takım Derlemesi çözümün dağıtımını denetleen özel proje dosyasını çalıştırmalıdır. Bu işlemin bir parçası olarak, Takım Derlemesi paketlenmiş web uygulamalarını hedef web sunucularına yüklemek için Internet Information Services (IIS) Web Dağıtım Aracı'nı (Web Dağıtımı) çağırır ve hedef veritabanı sunucularında veritabanı oluşturma betiklerini çalıştırmak için VSDBCMD.exe yardımcı programını çağırır.
Bu, işlemi gösterir:
Contact Manager örnek çözümü, MSBuild veya Takım Derlemesi'nden çalıştırabileceğiniz özel bir MSBuild proje dosyası (Publish.proj) içerir. Derleme sürecini anlama bölümünde açıklandığı gibi, bu proje dosyası web paketlerinizi ve veritabanlarınızı hedef ortama dağıtan mantığı tanımlar. Dosya, Takım Derlemesi'nde çalışıyorsa derleme ve paketleme işlemini atlayan ve yalnızca dağıtım görevlerini çalıştıracak şekilde bırakan mantık içerir. Bunun nedeni, dağıtımı bu şekilde otomatikleştirdiğinizde genellikle çözümün başarıyla derlendiğinden ve dağıtım işlemi başlamadan önce tüm birim testlerini geçtiğinden emin olmak isteyeceksiniz.
Sonraki bölümde, yeni bir derleme tanımı oluşturarak bu işlemin nasıl uygulandığı açıklanmaktadır.
Not
Tek bir otomatik işlemin bir çözümü derlediği, test ettiği ve dağıttığı bu yordam, test ortamlarına dağıtım için büyük olasılıkla en uygun olacaktır. Hazırlama ve üretim ortamları için, bir test ortamında zaten doğruladığınız ve doğruladığınız önceki bir derlemeden içerik dağıtmak isteme olasılığınız çok daha yüksektir. Bu yaklaşım bir sonraki konu başlığında açıklanmıştır: Belirli Bir Derlemeyi Dağıtma.
Bu Yordamı Kim Gerçekleştirir?
Genellikle, bir TFS yöneticisi bu yordamı gerçekleştirir. Bazı durumlarda geliştirici ekip lideri TFS'de takım projesi koleksiyonu sorumluluğunu üstlenebilir. Yeni bir derleme tanımı oluşturmak için çözümünüzü içeren takım projesi koleksiyonu için Proje Koleksiyonu Derleme Yöneticileri grubunun üyesi olmanız gerekir.
CI ve Dağıtım için Derleme Tanımı Oluşturma
Sonraki yordamda CI'nin tetiklediği bir derleme tanımının nasıl oluşturulacağı açıklanmaktadır. Derleme başarılı olursa, çözüm özel bir MSBuild proje dosyasındaki mantık kullanılarak dağıtılır.
CI ve dağıtım için derleme tanımı oluşturmak için
Visual Studio 2010'da , Takım Gezgini penceresinde takım projesi düğümünüzü genişletin, Derlemeler'e sağ tıklayın ve ardından Yeni Derleme Tanımı'na tıklayın.
Genel sekmesinde derleme tanımına bir ad (örneğin, DeployToTest) ve isteğe bağlı bir açıklama verin.
Tetikleyici sekmesinde, yeni derlemeyi tetiklemesini istediğiniz ölçütleri seçin. Örneğin, bir geliştiricinin her yeni kodu iade etmesinde çözümü oluşturmak ve test ortamına dağıtmak istiyorsanız Sürekli Tümleştirme'yi seçin.
Derleme Varsayılanları sekmesinde, Derleme çıkışını aşağıdaki bırakma klasörüne kopyala kutusuna, bırakma klasörünüzün Evrensel Adlandırma Kuralı (UNC) yolunu yazın (örneğin, \TFSBUILD\Drop).
Not
Bu bırakma konumu, yapılandırdığınız bekletme ilkesine bağlı olarak çeşitli derlemeleri depolar. Dağıtım yapıtlarını belirli bir derlemeden hazırlama veya üretim ortamına yayımlamak istediğinizde, bunları burada bulabilirsiniz.
İşlem sekmesindeki Derleme işlemi dosyası açılan listesinde DefaultTemplate.xaml öğesini seçili bırakın. Bu, tüm yeni ekip projelerine eklenen varsayılan derleme işlemi şablonlarından biridir.
Derleme işlemi parametreleri tablosunda, Oluşturacak Öğeler satırına tıklayın ve sonra üç nokta düğmesine tıklayın.
Derleneceği Öğeler iletişim kutusunda Ekle'ye tıklayın.
Çözüm dosyanızın konumuna gidin ve Tamam'a tıklayın.
Derleneceği Öğeler iletişim kutusunda Ekle'ye tıklayın.
Öğe türü açılan listesinde MSBuild Proje dosyaları'nı seçin.
Dağıtım işlemini denetlediğiniz özel proje dosyasının konumuna göz atın, dosyayı seçin ve tamam'a tıklayın.
Oluşturacak Öğeler iletişim kutusunda artık iki öğe gösterilmelidir. Tamam'a tıklayın.
İşlem sekmesindeki İşlem parametreleri tablosunda Gelişmiş bölümünü genişletin.
MSBuild Bağımsız Değişkenleri satırında, derlemek için öğelerinizden herhangi birinin gerektirdiği MSBuild komut satırı bağımsız değişkenlerini ekleyin. Contact Manager çözüm senaryosunda bu bağımsız değişkenler gereklidir:
/p:DeployOnBuild=true;DeployTarget=Package; TargetEnvPropsFile=EnvConfig\Env-Dev.proj
Bu örnekte:
- Contact Manager çözümünü oluştururken DeployOnBuild=true ve DeployTarget=package bağımsız değişkenleri gereklidir. Bu, WEB Uygulaması Projelerini Oluşturma ve Paketleme bölümünde açıklandığı gibi, MSBuild'e her web uygulaması projesini oluşturduktan sonra web dağıtım paketleri oluşturmasını sağlar.
- Publish.proj dosyasını oluştururken TargetEnvPropsFile bağımsız değişkeni gereklidir. Bu özellik, Derleme sürecini anlama bölümünde açıklandığı gibi ortama özgü yapılandırma dosyasının konumunu gösterir.
Bekletme İlkesi sekmesinde, her türün kaç derlemesini gerektiği gibi korumak istediğinizi yapılandırın.
Kaydet’e tıklayın.
Bir Derlemeyi Sıraya Koyma
Bu noktada en az bir yeni derleme tanımı oluşturdunuz. Tanımladığınız derleme işlemi artık derleme tanımında belirttiğiniz tetikleyicilere göre çalışacaktır.
Derleme tanımınızı CI kullanacak şekilde yapılandırdıysanız, derleme tanımınızı iki şekilde test edebilirsiniz:
- Otomatik derlemeyi tetikleme amacıyla takım projesine bazı içerikleri iade edin.
- Derlemeyi el ile kuyruğa alın.
Derlemeyi el ile kuyruğa almak için
Takım Gezgini penceresinde derleme tanımına sağ tıklayın ve ardından Yeni DerlemeYi Sıraya Ekle'ye tıklayın.
Kuyruk Derlemesi iletişim kutusunda derleme özelliklerini gözden geçirin ve ardından Kuyruk'a tıklayın.
El ile veya otomatik olarak tetiklenmiş olmasına bakılmaksızın derlemenin ilerleme durumunu ve sonucunu gözden geçirmek için Takım Gezgini penceresinde derleme tanımına çift tıklayın. Bu işlem bir Derleme Gezgini sekmesi açar.
Buradan, başarısız derlemelerle ilgili sorunları giderebilirsiniz. Tek bir derlemeye çift tıklarsanız, özet bilgileri görüntüleyebilir ve ayrıntılı günlük dosyalarına tıklayabilirsiniz.
Başarısız derlemeleri gidermek ve başka bir derleme denemeden önce sorunları gidermek için bu bilgileri kullanabilirsiniz.
Not
Dağıtım mantığını yürüten derlemeler, derleme sunucusuna hedef ortamda gerekli izinleri verene kadar başarısız olabilir. Daha fazla bilgi için bkz. Takım Derleme Dağıtımı İzinlerini Yapılandırma.
Derleme İşlemini İzleme
TFS, derleme işlemini izlemenize yardımcı olmak için çok çeşitli işlevler sağlar. Örneğin, TFS bir derleme tamamlandığında size e-posta gönderebilir veya görev çubuğu bildirim alanınızda uyarılar görüntüleyebilir. Daha fazla bilgi için bkz. Derlemeleri Çalıştırma ve İzleme.
Sonuç
Bu konuda, TFS'de derleme tanımının nasıl oluşturulacağı açıklanmıştır. Derleme tanımı CI için yapılandırıldığından, bir geliştirici ekip projesine içerik iade ettiyse derleme işlemi çalışır. Derleme tanımı, web paketlerini ve veritabanı betiklerini hedef sunucu ortamına dağıtmak için özel bir MSBuild proje dosyası yürütür.
Otomatik dağıtımın derleme işleminin bir parçası olarak başarılı olması için hedef web sunucularında ve hedef veritabanı sunucusunda derleme hizmeti hesabına uygun izinleri vermeniz gerekir. Bu öğreticinin son konusu olan Takım Derleme Dağıtımı için İzinleri Yapılandırma, Takım Derlemesi sunucusundan otomatik dağıtım için gereken izinleri tanımlamayı ve yapılandırmayı açıklar.
Daha Fazla Bilgi
Derleme tanımları oluşturma hakkında daha fazla bilgi için bkz. Temel Derleme Tanımı Oluşturma ve Derleme sürecinizi tanımlama. Derlemeleri kuyruğa alma hakkında daha fazla kılavuz için bkz. Derlemeyi Kuyruğa Alma.