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.
tarafından Jason Lee
Bir web uygulaması projesini uzak sunucu ortamına dağıtmak istediğinizde, ilk göreviniz projeyi oluşturmak ve bir web dağıtım paketi oluşturmaktır. Bu konuda, derleme işleminin web uygulaması projeleri için nasıl çalıştığı açıklanmaktadır. Özellikle şunları açıklar:
- Web Yayımlama İşlem Hattı 'nın (WPP) derleme işlemini dağıtım işlevselliğini içerecek şekilde genişletme şekli.
- Internet Information Services (IIS) Web Dağıtım Aracı'nın (Web Dağıtımı) web uygulamanızı bir dağıtım paketine dönüştürme şekli.
- Derleme ve paketleme işleminin nasıl çalıştığı ve hangi dosyaların oluşturulduğu.
Visual Studio 2010'da, web uygulaması projeleri için derleme ve dağıtım işlemi WPP tarafından desteklenir. WPP, MSBuild işlevini genişleten ve Web Dağıtımı ile tümleştirmesini sağlayan bir dizi Microsoft Build Engine (MSBuild) hedefi sağlar. Visual Studio'da bu genişletilmiş işlevselliği web uygulaması projenizin özellik sayfalarında görebilirsiniz. Paketle/Yayımla Web sayfası, SQL'yi Paketle/Yayımla sayfasıyla birlikte, derleme işlemi tamamlandığında web uygulaması projenizin dağıtım için nasıl paketlendiğini yapılandırmanıza olanak tanır.
WPP Nasıl Çalışır?
C#tabanlı bir web uygulaması projesinin proje dosyasına bakarsanız, iki .targets dosyasını içeri aktardığını görebilirsiniz.
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\
v10.0\WebApplications\Microsoft.WebApplication.targets" />
İlk import deyimi tüm Visual C# projelerine ortaktır. Microsoft.CSharp.targets adlı bu dosya, Visual C# ile ilgili hedefleri ve görevleri içerir. Örneğin, C# derleyicisi (Csc) görevi burada çağrılır. Microsoft.CSharp.targets dosyası da Microsoft.Common.targets dosyasını içeri aktarır. Bu, Derleme, Yeniden Derleme, Çalıştırma, Derleme ve Temizleme gibi tüm projelerde ortak olan hedefleri tanımlar. İkinci import deyimi web uygulaması projelerine özgüdür. Microsoft.WebApplication.targets dosyası da Microsoft.Web.Publishing.targets dosyasını içeri aktarır. Microsoft.Web.Publishing.targets dosyası temelde WPP'dir. Çeşitli dağıtım görevlerini tamamlamak için Web Dağıtımı'nın çağrıldığı Package ve MSDeployPublish gibi hedefleri tanımlar.
Bu ek hedeflerin nasıl kullanıldığını anlamak için, Contact Manager örnek çözümünde Publish.proj dosyasını açın ve BuildProjects hedefine göz atın.
<Target Name="BuildProjects" Condition=" '$(BuildingInTeamBuild)'!='true' ">
<MSBuild Projects="@(ProjectsToBuild)"
Properties="OutDir=$(OutputRoot);
Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package"
Targets="Build" />
</Target>
Bu hedef, çeşitli projeler oluşturmak için MSBuild görevini kullanır. DeployOnBuild ve DeployTarget özelliklerine dikkat edin:
- DeployOnBuild=true özelliği temelde "Derleme başarıyla tamamlandığında ek bir hedef yürütmek istiyorum" anlamına gelir.
- DeployTarget özelliği, DeployOnBuild özelliği true değerine eşit olduğunda yürütmek istediğiniz hedefin adını tanımlar. Bu durumda, projeyi derledikten sonra MSBuild'in Paket hedefini yürütmesini istediğinizi belirtirsiniz.
Paket hedefi Microsoft.Web.Publishing.targets dosyasında tanımlanır. Temel olarak, bu hedef web uygulaması projenizin derleme çıkışını alır ve bir IIS web sunucusunda yayımlanabilir bir web dağıtım paketine dönüştürür.
Not
Visual Studio 2010'da bir proje dosyasını (örneğin, ContactManager.Mvc.csproj) görüntülemek için önce projeyi çözümünüzden kaldırmanız gerekir.
Çözüm Gezgini penceresinde proje düğümüne sağ tıklayın ve ardından Projeyi Kaldır'a tıklayın. Proje düğümüne yeniden sağ tıklayın ve ardından Düzenle[proje dosyası]) öğesine tıklayın. Proje dosyası ham XML biçiminde açılır. İşiniz bittiğinde projeyi yeniden yüklemeyi unutmayın.
MSBuild hedefleri, görevleri ve İçeri Aktarma deyimleri hakkında daha fazla bilgi için bkz. Proje Dosyasını Anlama. Proje dosyalarına ve WPP'ye daha ayrıntılı bir giriş için bkz. inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build by Sayed Ibrahim Hashimi and William Bartholomew, ISBN: 978-0-7356-4524-0.
Web Dağıtım Paketi nedir?
Visual Studio 2010 veya doğrudan MSBuild kullanarak bir web uygulaması projesi derleyip dağıttığınızda, sonuç genellikle bir web dağıtım paketi olur. Web dağıtım paketi .zip bir dosyadır. Aşağıdakiler de dahil olmak üzere web uygulamanızı yeniden oluşturmak için IIS ve Web Dağıtımı'nın ihtiyaç duyduğu her şeyi içerir:
- İçerik, kaynak dosyaları, yapılandırma dosyaları, JavaScript ve basamaklı stil sayfaları (CSS) kaynakları gibi web uygulamanızın derlenmiş çıkışı.
- Web uygulaması projeniz ve çözümünüz içindeki başvurulabilecek projeler için derlemeler.
- Web uygulamanızla dağıttığınız veritabanlarını oluşturmak için SQL betikleri.
Web dağıtım paketi oluşturulduktan sonra, bunu çeşitli yollarla bir IIS web sunucusuna yayımlayabilirsiniz. Örneğin, hedef web sunucusunda Web Deploy Remote Agent hizmetini veya Web Dağıtımı İşleyicisi'ni hedefleyerek uzaktan dağıtabilir veya paketi hedef web sunucusuna el ile aktarmak için IIS Yöneticisi'ni kullanabilirsiniz. Dağıtıma yönelik bu yaklaşımlar hakkında daha fazla bilgi için bkz. Web Dağıtımına Doğru Yaklaşımı Seçme.
Derleme İşlemi Nasıl Çalışır?
Bu, bir web uygulaması projesi derleyip paketlediğinizde ne olduğunu gösterir:
Bir web uygulaması projesi oluşturduğunuzda, derleme işlemi [proje adı].SourceManifest.xmladlı bir dosya oluşturur. Bu .SourceManifest.xml dosyası, proje dosyası ve derleme çıkışıyla birlikte Web Dağıtımı'na web dağıtım paketine eklenmesi gerekenleri bildirir. Web Deploy, bu girişleri kullanarak [proje adı].zipadlı bir web dağıtım paketi oluşturur.
Derleme işlemi, web dağıtım paketinin yanı sıra paketi kullanmanıza yardımcı olabilecek iki dosya oluşturur:
- .deploy.cmd dosyası, web dağıtım paketinizi uzak IIS web sunucusunda yayımlayan bir dizi parametreli Web Dağıtımı (MSDeploy.exe) komutu içerir. .deploy.cmd dosyasını uygun parametrelerle çalıştırmak, genellikle MSDeploy.exe komutlarını kendiniz el ile oluşturmak için daha hızlı ve daha kolay bir alternatif sağlar.
- SetParameters.xml dosyası, MSDeploy.exe komutuna bir parametre değerleri kümesi sağlar. Bu değerler paketi dağıtmak istediğiniz IIS web uygulamasının adı, web.config dosyasında tanımlanan hizmet uç noktalarının ve bağlantı dizelerinin değerleri ve proje özellikleri sayfalarında tanımlanan dağıtım özelliği değerleri gibi özellikleri içerir.
SetParameters.xml dosyası, dağıtım işlemini yönetmek için önemlidir. Bu dosya, web uygulaması projenizin içeriğine göre dinamik olarak oluşturulur. Örneğin, web.config dosyanıza bir bağlantı dizesi eklerseniz, derleme işlemi bağlantı dizesini otomatik olarak algılar, dağıtımı uygun şekilde parametrelendirir ve dağıtım işleminin bir parçası olarak bağlantı dizesini değiştirmenize olanak sağlamak için SetParameters.xml dosyasında bir giriş oluşturur. Bir sonraki konu olan Web Paketi Dağıtımı için Parametreleri Yapılandırma, bu dosyanın rolünü daha ayrıntılı olarak açıklar ve derleme ve dağıtım sırasında bu dosyayı değiştirmenin farklı yollarını açıklar.
Not
Visual Studio 2010'da WPP, web uygulamasında sayfaları paketlemeden önce önceden derlemeyi desteklemez. Visual Studio ve WPP'nin sonraki sürümü, bir web uygulamasını paketleme seçeneği olarak önceden derleme özelliğini içerir.
Sonuç
Bu konuda, Visual Studio 2010'da web uygulaması projeleri için derleme ve paketleme işlemine genel bir bakış sağlanmıştır. WPP'nin MSBuild'den Web Dağıtımı komutlarını çağırmanıza nasıl olanak tanır ve derleme ve paketleme işleminin nasıl çalıştığını açıklar.
Bir web dağıtım paketi oluşturduktan sonra, bir sonraki adımınız bunu dağıtmaktır. Bu konuda daha fazla bilgi için bkz. Web Paketi Dağıtımı için Parametreleri Yapılandırma ve Web Paketlerini Dağıtma.
Daha Fazla Bilgi
Bu öğreticideki bir sonraki konu başlığı olan Web Paketi Dağıtımı için Parametreleri Yapılandırma ve Web Paketlerini Dağıtma, oluşturduğunuz web paketinin nasıl kullanılacağına ilişkin rehberlik sağlar. Bu serinin son öğreticisi olan Gelişmiş Kurumsal Web Dağıtımı, paketleme işlemini özelleştirme ve sorunlarını giderme konusunda rehberlik sağlar.
Proje dosyalarına ve WPP'ye daha ayrıntılı bir giriş için bkz. inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build by Sayed Ibrahim Hashimi and William Bartholomew, ISBN: 978-0-7356-4524-0.