Visual Studio kullanarak Web Dağıtımı ASP.NET: Komut Satırı Dağıtımı
tarafından Tom Dykstra
Bu öğretici serisi, Visual Studio 2012 veya Visual Studio 2010 kullanarak ASP.NET web uygulamasını Azure Uygulaması Service Web Apps'e veya üçüncü taraf barındırma sağlayıcısına dağıtmayı (yayımlamayı) gösterir. Seri hakkında bilgi için serinin ilk öğreticisine bakın.
Genel bakış
Bu öğreticide, komut satırından Visual Studio web yayımlama işlem hattını çağırma gösterilmektedir. Bu, genellikle bir kaynak kodu sürüm denetim sistemi kullanarak Visual Studio'da el ile yapmak yerine dağıtım işlemini otomatikleştirmek istediğiniz senaryolar için kullanışlıdır.
Dağıtmak için değişiklik yapma
Şu anda Hakkında sayfasında şablon kodu görüntülenir.
Bunu öğrenci kaydının özetini görüntüleyen kodla değiştireceksiniz.
About.aspx sayfasını açın, öğenin içindeki MainContent
Content
tüm işaretlemeyi silin ve yerine aşağıdaki işaretlemeyi ekleyin:
<h2>Student Body Statistics</h2>
<asp:ObjectDataSource ID="StudentStatisticsObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
SelectMethod="GetStudentStatistics" DataObjectTypeName="ContosoUniversity.DAL.EnrollmentDateGroup">
</asp:ObjectDataSource>
<asp:GridView ID="StudentStatisticsGridView" runat="server" AutoGenerateColumns="False"
DataSourceID="StudentStatisticsObjectDataSource">
<Columns>
<asp:BoundField DataField="EnrollmentDate" DataFormatString="{0:d}" HeaderText="Date of Enrollment"
ReadOnly="True" SortExpression="EnrollmentDate" />
<asp:BoundField DataField="StudentCount" HeaderText="Students" ReadOnly="True"
SortExpression="StudentCount" />
</Columns>
</asp:GridView>
Projeyi çalıştırın ve Hakkında sayfasını seçin.
Komut satırını kullanarak Test'e dağıtma
Başka bir veritabanı değişikliği dağıtmayacaksınız, bu nedenle aspnet-ContosoUniversity veritabanı için dbDacFx veritabanı dağıtımını devre dışı bırakın. Web'i Yayımla sihirbazını açın ve üç yayımlama profilinin her birinde Ayarlar sekmesinde veritabanını güncelleştir onay kutusunu temizleyin.
Windows 8 Başlangıç sayfasında VS2012 için Geliştirici Komut İstemi'ni arayın.
VS2012 için Geliştirici Komut İstemi simgesine sağ tıklayın ve Yönetici olarak çalıştır'a tıklayın.
Komut isteminde, çözüm dosyasının yolunu çözüm dosyanızın yoluyla değiştirerek aşağıdaki komutu girin:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test
MSBuild çözümü oluşturur ve test ortamına dağıtır.
Bir tarayıcı açın ve adresine http://localhost/ContosoUniversity
gidin, ardından dağıtımın başarılı olduğunu doğrulamak için Hakkında sayfasına tıklayın.
Testte hiç öğrenci oluşturmadıysanız, Öğrenci Gövdesi İstatistikleri başlığının altında boş bir sayfa görürsünüz. Öğrenciler sayfasına gidin, Öğrenci Ekle'ye tıklayın, bazı öğrenciler ekleyin ve ardından öğrenci istatistiklerini görmek için Hakkında sayfasına dönün.
Anahtar komut satırı seçenekleri
Girdiğiniz komut, çözüm dosyası yolunu ve iki özelliği MSBuild'e geçirdi:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true
/p:PublishProfile=Test
Çözümü dağıtma ve tek tek projeleri dağıtma
Çözüm dosyasının belirtilmesi çözümdeki tüm projelerin derlenmesine neden olur. Çözümde birden çok web projeniz varsa, aşağıdaki MSBuild davranışı geçerlidir:
- Komut satırında belirttiğiniz özellikler her projeye geçirilir. Bu nedenle, her web projesinin belirttiğiniz ada sahip bir yayımlama profili olmalıdır. belirtirseniz
/p:PublishProfile=Test
, her web projesinin Test adlı bir yayımlama profili olmalıdır. - Başka bir proje derlenmiyorsa, bir projeyi başarıyla yayımlayabilirsiniz. Daha fazla bilgi için bkz. stackoverflow iş parçacığı MSBuild iki paketle başarısız oluyor.
Çözüm yerine tek bir proje belirtirseniz Visual Studio sürümünü belirten bir parametre eklemeniz gerekir. Visual Studio 2012 kullanıyorsanız komut satırı aşağıdaki örneğe benzer olacaktır:
msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0
Visual Studio 2010 sürüm numarası 10.0'dır. Daha fazla bilgi için Bkz . Visual Studio proje uyumluluğu ve Sayed Hashimi'de VisualStudioVersion blogu.
Yayımlama profilini belirtme
Yayımlama profilini, aşağıdaki örnekte gösterildiği gibi ada veya .pubxml dosyasının tam yoluna göre belirtebilirsiniz:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml
Komut satırı yayımlama için desteklenen web yayımlama yöntemleri
Komut satırı yayımlama için üç yayımlama yöntemi desteklenir:
MSDeploy
- Web Dağıtımı kullanarak yayımlayın.Package
- Web Dağıtım Paketi oluşturarak yayımlayın. Paketi oluşturan MSBuild komutundan ayrı olarak yüklemeniz gerekir.FileSystem
- Dosyaları belirtilen bir klasöre kopyalayarak yayımlayın.
Derleme yapılandırmasını ve platformu belirtme
Derleme yapılandırması ve platformu Visual Studio'da veya komut satırında ayarlanmalıdır. Yayımlama profilleri ve adlı LastUsedBuildConfiguration
LastUsedPlatform
özellikleri içerir, ancak projenin nasıl derlendiğini belirlemek için bu özellikleri ayarlayamazsınız. Daha fazla bilgi için bkz . MSBuild: Sayed Hashimi'nin blogundaki yapılandırma özelliğini ayarlama.
Hazırlık ortamına dağıtma
Azure'a dağıtmak için parolayı komut satırına eklemeniz gerekir. Parolayı Visual Studio'daki yayımlama profiline kaydettiyseniz, .pubxml.user dosyanızda şifrelenmiş biçimde depolanmıştır. Bir komut satırı dağıtımı yaptığınızda bu dosyaya MSBuild tarafından erişilmediğinden, parolayı bir komut satırı parametresinde geçirmeniz gerekir.
Hazırlama web sitesi için daha önce indirdiğiniz .publishsettings dosyasından ihtiyacınız olan parolayı kopyalayın. Parola, Web Dağıtımı
publishProfile
öğesininuserPWD
özniteliğinin değeridir.Windows 8 Başlangıç sayfasında VS2012 için Geliştirici Komut İstemi'ni arayın ve komut istemini açmak için simgeye tıklayın. (Yerel bilgisayarda IIS'ye dağıtmadığınız için bu kez yönetici olarak açmanız gerekmez.)
Komut istemine aşağıdaki komutu girin; çözüm dosyasının yolunu çözüm dosyanızın yolu ve parolayı parolanızla değiştirin:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
Bu komut satırının ek bir parametre içerdiğine dikkat edin:
/p:AllowUntrustedCertificate=true
. Bu öğretici yazılırken, özelliğin komut satırındanAllowUntrustedCertificate
Azure'da yayımladığınızda ayarlanması gerekir. Bu hatanın düzeltmesi yayınlandığında bu parametreye ihtiyacınız olmayacaktır.Bir tarayıcı açın ve hazırlama sitenizin URL'sine gidin ve dağıtımın başarılı olduğunu doğrulamak için Hakkında sayfasına tıklayın.
Test ortamı için daha önce gördüğünüz gibi, Hakkında sayfasında istatistikleri görmek için bazı öğrenciler oluşturmanız gerekebilir.
Üretime dağıt
Üretime dağıtma işlemi hazırlama işlemine benzer.
Daha önce üretim web sitesi için indirdiğiniz .publishsettings dosyasından ihtiyacınız olan parolayı kopyalayın.
VS2012 için Geliştirici Komut İstemi'ni açın.
Komut istemine aşağıdaki komutu girin; çözüm dosyasının yolunu çözüm dosyanızın yolu ve parolayı parolanızla değiştirin:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
Gerçek bir üretim sitesi için, veritabanı değişikliği de varsa, genellikle app_offline.htm dosyasını dağıtımdan önce siteye kopyalar ve başarılı dağıtımdan sonra silersiniz.
Bir tarayıcı açın ve hazırlama sitenizin URL'sine gidin ve dağıtımın başarılı olduğunu doğrulamak için Hakkında sayfasına tıklayın.
Özet
Şimdi komut satırını kullanarak bir uygulama güncelleştirmesi dağıttınız.
Sonraki öğreticide, web yayımlama işlem hattının nasıl genişletileceğini gösteren bir örnek göreceksiniz. Örnekte, projeye dahil olmayan dosyaların nasıl dağıtılacağı gösterilir.