ASP.NET веб-развертывания с помощью Visual Studio: развертывание из командной строки
В этой серии руководств показано, как развернуть (опубликовать) веб-приложение ASP.NET для Служба приложений Azure веб-приложения или стороннего поставщика услуг размещения с помощью Visual Studio 2012 или Visual Studio 2010. Сведения о серии см. в первом руководстве этой серии.
Общие сведения
В этом руководстве показано, как вызвать конвейер веб-публикации Visual Studio из командной строки. Это полезно для сценариев, в которых требуется автоматизировать процесс развертывания , а не выполнять его вручную в Visual Studio, обычно с помощью системы управления версиями исходного кода.
Внесите изменения для развертывания
В настоящее время на странице О программе отображается код шаблона.
Вы замените его кодом, в котором отображается сводка о регистрации учащихся.
Откройте страницу About.aspx , удалите всю разметку внутри MainContent
Content
элемента и вставьте вместо нее следующую разметку:
<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>
Запустите проект и выберите страницу О программе .
Развертывание в test с помощью командной строки
Вы не будете развертывать другое изменение базы данных, поэтому отключите развертывание базы данных dbDacFx для базы данных aspnet-ContosoUniversity. Откройте мастер публикации в Интернете и в каждом из трех профилей публикации снимите флажок Обновить базу данных проверка на вкладке Параметры.
На начальной странице Windows 8 найдите командную строку разработчика для VS2012.
Щелкните правой кнопкой мыши значок командной строки разработчика для VS2012 и выберите запуск от имени администратора.
Введите следующую команду в командной строке, заменив путь к файлу решения путем к файлу решения:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test
MSBuild создает решение и развертывает его в тестовой среде.
Откройте браузер и перейдите по адресу http://localhost/ContosoUniversity
, а затем щелкните страницу О программе , чтобы убедиться, что развертывание прошло успешно.
Если вы еще не создали учащихся в тесте, вы увидите пустую страницу под заголовком Статистика тела учащихся . Перейдите на страницу Учащиеся , нажмите кнопку Добавить учащегося и добавьте несколько учащихся, а затем вернитесь на страницу О программе , чтобы просмотреть статистику учащихся.
Параметры командной строки ключа
Введенная команда передала путь к файлу решения и два свойства в MSBuild:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true
/p:PublishProfile=Test
Развертывание решения и развертывание отдельных проектов
Указание файла решения приводит к сборке всех проектов в решении. При наличии нескольких веб-проектов в решении применяется следующее поведение MSBuild:
- Свойства, указанные в командной строке, передаются в каждый проект. Таким образом, каждый веб-проект должен иметь профиль публикации с указанным именем. Если указать
/p:PublishProfile=Test
значение , каждый веб-проект должен иметь профиль публикации с именем Test. - Вы можете успешно опубликовать один проект, когда другой проект даже не выполняет сборку. Дополнительные сведения см. в разделе сбой потока стекаoverflow MSBuild с двумя пакетами.
Если вы указываете отдельный проект вместо решения, необходимо добавить параметр, указывающий версию Visual Studio. Если вы используете Visual Studio 2012, командная строка будет выглядеть примерно так:
msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0
Номер версии Visual Studio 2010 — 10.0. Дополнительные сведения см. в статье Совместимость проектов Visual Studio и VisualStudioVersion в блоге Сайеда Хашими.
Указание профиля публикации
Профиль публикации можно указать по имени или по полному пути к PUBXML-файлу , как показано в следующем примере:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml
Методы веб-публикации, поддерживаемые для публикации из командной строки
Для публикации из командной строки поддерживаются три метода публикации:
MSDeploy
— Публикация с помощью веб-развертывания.Package
— Публикация путем создания пакета веб-развертывания. Пакет необходимо установить отдельно от команды MSBuild, которая его создает.FileSystem
— публикация путем копирования файлов в указанную папку.
Указание конфигурации и платформы сборки
Конфигурация сборки и платформа должны быть заданы в Visual Studio или в командной строке. Профили публикации содержат свойства с именами LastUsedBuildConfiguration
и LastUsedPlatform
, но эти свойства невозможно задать, чтобы определить способ сборки проекта. Дополнительные сведения см. в разделе MSBuild: настройка свойства конфигурации в блоге Сайед Хашими.
Развертывание в промежуточное хранилище
Чтобы выполнить развертывание в Azure, необходимо добавить пароль в командную строку. Если вы сохранили пароль в профиле публикации в Visual Studio, он был сохранен в зашифрованном виде в файле .pubxml.user . MsBuild не обращается к файлу при развертывании из командной строки, поэтому необходимо передать пароль в параметре командной строки.
Скопируйте необходимый пароль из файла PUBLISHSETTINGS , загруженного ранее для промежуточного веб-сайта. Пароль — это значение атрибута
userPWD
элемента Web DeploypublishProfile
.На начальной странице Windows 8 найдите командную строку разработчика для VS2012 и щелкните значок, чтобы открыть командную строку. (На этот раз вам не нужно открывать его от имени администратора, так как вы не выполняете развертывание в IIS на локальном компьютере.)
Введите в командной строке следующую команду, заменив путь к файлу решения путем к файлу решения, а пароль — паролем:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
Обратите внимание, что эта командная строка содержит дополнительный параметр:
/p:AllowUntrustedCertificate=true
. В этом руководствеAllowUntrustedCertificate
свойство должно быть задано при публикации в Azure из командной строки. После выпуска исправления этой ошибки этот параметр не потребуется.Откройте браузер и перейдите по URL-адресу промежуточного сайта, а затем щелкните страницу О программе , чтобы убедиться, что развертывание прошло успешно.
Как вы видели ранее для тестовой среды, может потребоваться создать несколько учащихся, чтобы просмотреть статистику на странице О программе .
Развертывание в рабочую среду
Процесс развертывания в рабочей среде аналогичен процессу промежуточного хранения.
Скопируйте необходимый пароль из файла PUBLISHSETTINGS , загруженного ранее для рабочего веб-сайта.
Откройте командную строку разработчика для VS2012.
Введите в командной строке следующую команду, заменив путь к файлу решения путем к файлу решения, а пароль — паролем:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
Для реального рабочего сайта, если также произошло изменение базы данных, вы обычно копируете файлapp_offline.htm на сайт перед развертыванием и удаляете его после успешного развертывания.
Откройте браузер и перейдите по URL-адресу промежуточного сайта, а затем щелкните страницу О программе , чтобы убедиться, что развертывание прошло успешно.
Итоги
Вы развернули обновление приложения с помощью командной строки.
В следующем руководстве вы увидите пример расширения конвейера веб-публикации. В примере показано, как развернуть файлы, которые не включены в проект.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по