Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konuda, Microsoft Build Engine (MSBuild) proje dosyalarını tek adımlı, yinelenebilir bir işlem olarak kullanarak dağıtım çalıştırmanıza olanak sağlayacak bir komut dosyasının nasıl derlendiğ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 gibi 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 işleminin her hedef ortama uygulanan derleme yönergelerini içeren ve ortama özgü derleme ve dağıtım ayarlarını içeren iki proje dosyası tarafından denetlendiği Derleme sürecini anlama bölümünde açıklanan bölünmüş proje dosyası yaklaşımını temel alır. 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.
İşleme Genel Bakış
Bu konu başlığında, hedef ortamınıza tekrarlanabilir bir dağıtım gerçekleştirmek için bu proje dosyalarını kullanan bir komut dosyası oluşturmayı ve çalıştırmayı öğreneceksiniz. Temelde, komut dosyasının aşağıdakileri içeren bir MSBuild komutu içermesi gerekir:
- MSBuild'e environment-agnostic Publish.proj dosyasını yürütmesini söyler.
- Publish.proj dosyasına ortama özgü proje ayarlarını içeren dosyayı ve nerede bulunacağı bildirir.
MSBuild Komutu Oluşturma
Derleme sürecini anlama bölümünde açıklandığı gibi, ortama özgü proje dosyası (örneğin, Env-Dev.proj), derleme zamanında environment-agnostic Publish.proj dosyasına aktarılacak şekilde tasarlanmıştır. Bu iki dosya birlikte, MSBuild'e çözümünüzü nasıl derleyip dağıtacaklarını belirten eksiksiz bir yönerge kümesi sağlar.
Publish.proj dosyası, ortama özgü proje dosyasını içeri aktarmak için bir İçeri Aktarma öğesi kullanır.
<Import Project="$(TargetEnvPropsFile)"/>
Bu nedenle, Contact Manager çözümünü derlemek ve dağıtmak için MSBuild.exe kullandığınızda şunları yapmanız gerekir:
- Publish.proj dosyasında MSBuild.exe çalıştırın.
- TargetEnvPropsFile adlı bir komut satırı parametresi sağlayarak ortama özgü proje dosyasının konumunu belirtin.
Bunu yapmak için MSBuild komutunuz şuna benzemelidir:
msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj
Buradan, yinelenebilir, tek adımlı bir dağıtıma geçmek basit bir adımdır. Tek yapmanız gereken MSBuild komutunu bir .cmd dosyasına eklemektir. Contact Manager çözümünde Yayımla klasörü, tam olarak bunu sağlayan Publish-Dev.cmd adlı bir dosya içerir.
%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe Publish.proj /fl /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj
echo
pause
Not
/fl anahtarı, MSBuild'e MSBuild.exe çağrıldığı çalışma dizininde msbuild.log adlı bir günlük dosyası oluşturmasını emreder.
Contact Manager çözümünü dağıtmak veya yeniden dağıtmak için tek yapmanız gereken Publish-Dev.cmd dosyasını çalıştırmaktır. Dosyayı çalıştırdığınızda MSBuild şunları yapacaktır:
- Çözümdeki tüm projeleri oluşturun.
- Web uygulaması projeleri için dağıtılabilir web paketleri oluşturun.
- Veritabanı projeleri için .dbschema ve .deploymanifest dosyaları oluşturun.
- Web paketlerini web sunucusuna dağıtın.
- Veritabanını veritabanı sunucusuna dağıtın.
Dağıtımı Çalıştırma
Hedef ortamınız için bir komut dosyası oluşturduğunuzda, yalnızca dosyayı çalıştırarak dağıtımın tamamını tamamlayabilmeniz gerekir.
Contact Manager çözümünü test ortamınıza dağıtmak için
Geliştirici iş istasyonunuzda Windows Gezgini'ni açın ve Publish-Dev.cmd dosyasının konumuna göz atın.
Çalıştırmak için dosyaya çift tıklayın.
Dosya Aç – Güvenlik Uyarısı iletişim kutusu görüntülenirse Çalıştır'a tıklayın.
Yapılandırma ayarlarınız ve test sunucularınız doğru ayarlandıysa, MSBuild proje dosyalarını işlemeyi bitirdiğinde Komut İstemi penceresinde Derleme başarılı iletisi gösterilir.
Çözümü bu ortama ilk kez dağıttıysanız, test web sunucusu makine hesabını db_datawriter eklemeniz ve ContactManager veritabanındaki rolleri db_datareader gerekir. Bu yordam, Web Dağıtımı Yayımlama için Veritabanı Sunucusu Yapılandırma başlığında açıklanmıştır.
Not
Bu izinleri yalnızca veritabanını oluştururken atamanız gerekir. Varsayılan olarak, derleme işlemi veritabanını her dağıtımda yeniden oluşturmaz; bunun yerine mevcut veritabanını en son şemayla karşılaştırır ve yalnızca gerekli değişiklikleri yapar. Sonuç olarak, bu veritabanı rollerini yalnızca çözümü ilk kez dağıttığınızda eşlemeniz gerekir.
Internet Explorer'ı açın ve Contact Manager uygulamasının URL'sine göz atın (örneğin,
http://testweb1:85/ContactManager/
).Uygulamanın beklendiği gibi çalıştığını ve kişileri ekleyabildiğinizi doğrulayın.
Sonuç
MSBuild yönergelerinizi içeren bir komut dosyası oluşturmak, çok projeli bir çözümü oluşturmanın ve belirli bir hedef ortama dağıtmanın hızlı ve kolay bir yolunu sağlar. Çözümünüzü birden çok hedef ortamına tekrar tekrar dağıtmanız gerekiyorsa, birden çok komut dosyası oluşturabilirsiniz. Her komut dosyasında, MSBuild komutu aynı evrensel proje dosyasını oluşturur, ancak ortama özgü farklı bir proje dosyası belirtir. Örneğin, bir geliştiriciye veya test ortamına yayımlamak için bir komut dosyası şu MSBuild komutunu içerebilir:
msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj
Hazırlama ortamına yayımlamak için bir komut dosyası şu MSBuild komutunu içerebilir:
msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Stage.proj
Not
Kendi sunucu ortamlarınız için ortama özgü proje dosyalarını özelleştirme hakkında yönergeler için bkz. Hedef Ortam için Dağıtım Özelliklerini Yapılandırma.
Ayrıca özellikleri geçersiz kılarak veya MSBuild komutunuzda diğer çeşitli anahtarları ayarlayarak her ortam için derleme işlemini özelleştirebilirsiniz. Daha fazla bilgi için bkz. MSBuild Komut Satırı Başvurusu.