Visual Studio kullanarak Web Dağıtımı ASP.NET: Komut Satırı Dağıtımı

tarafından Tom Dykstra

Başlangıç Projesini İndir

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.

Şablon kodu içeren sayfa hakkında

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.

Sayfa hakkında

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.

Komut satırı çıktısı

Bir tarayıcı açın ve adresine http://localhost/ContosoUniversitygidin, 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.

Hakkında sayfasındaki Öğrenci Gövdesi İstatistiklerini gösteren ekran görüntüsü.

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.

  1. 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 öğesinin userPWD özniteliğinin değeridir.

    Web Dağıtımı parolası

  2. 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.)

  3. 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ından AllowUntrustedCertificate Azure'da yayımladığınızda ayarlanması gerekir. Bu hatanın düzeltmesi yayınlandığında bu parametreye ihtiyacınız olmayacaktır.

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

  1. Daha önce üretim web sitesi için indirdiğiniz .publishsettings dosyasından ihtiyacınız olan parolayı kopyalayın.

  2. VS2012 için Geliştirici Komut İstemi'ni açın.

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

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

Öğrenci Gövdesi İstatistiklerini gösteren Hakkında sayfasını gösteren ekran görüntüsü.

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.