Aracılığıyla paylaş


Dağıtım Komut Dosyası Oluşturma ve Çalıştırma

tarafından Jason Lee

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

  1. Geliştirici iş istasyonunuzda Windows Gezgini'ni açın ve Publish-Dev.cmd dosyasının konumuna göz atın.

  2. Çalıştırmak için dosyaya çift tıklayın.

  3. Dosya Aç – Güvenlik Uyarısı iletişim kutusu görüntülenirse Çalıştır'a tıklayın.

  4. 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.

    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.

  5. Çö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.

  6. Internet Explorer'ı açın ve Contact Manager uygulamasının URL'sine göz atın (örneğin, http://testweb1:85/ContactManager/).

  7. Uygulamanın beklendiği gibi çalıştığını ve kişileri ekleyabildiğinizi doğrulayın.

    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.