Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой серии учебников показано, как развернуть (опубликовать) веб-приложение ASP.NET в Azure App Service Web Apps или у стороннего поставщика услуг хостинга с помощью Visual Studio 2012 или Visual Studio 2010. Сведения о серии смотрите в первом руководстве из этой серии.
Обзор
В этом руководстве показано, как вызвать конвейер веб-публикации Visual Studio из командной строки. Это полезно для сценариев, в которых требуется автоматизировать процесс развертывания, а не выполнять его вручную в Visual Studio, как правило, с помощью системы управления версиями исходного кода.
Чтобы развернуть, внесите изменения
В настоящее время на странице "Сведения" отображается код шаблона.
Вы замените это кодом, в котором отображается сводка о регистрации учащихся.
Откройте страницу About.aspx , удалите все разметки внутри MainContentContent элемента и вставьте следующую разметку в его место:
<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>
Запустите проект и выберите страницу О программе.
Развертывание для тестирования с помощью командной строки
Вы не будете развертывать другое изменение базы данных, поэтому отключите развертывание базы данных dbDacFx для базы данных aspnet-ContosoUniversity. Откройте мастер Publish Web, и в каждом из трех профилей публикации, снимите флажок "Обновить базу данных" на вкладке "Параметры".
На начальной странице 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. - Вы можете успешно опубликовать один проект, когда другой даже не создает. Дополнительные сведения см. в теме stackoverflow Сбой 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. Дополнительные сведения см. в записи блога Sayed Hashimi о совместимости проектов Visual Studio и VisualStudioVersion.
Указание профиля публикации
Профиль публикации можно указать по имени или по полному пути к PUBXML-файлу , как показано в следующем примере:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml
Методы веб-публикации, поддерживаемые для публикации в командной строке
Три метода публикации поддерживаются для публикации командной строки:
-
MSDeploy— Опубликовать с помощью Web Deploy. -
Package— Опубликовать, создав пакет для веб-развертывания. Необходимо установить пакет отдельно от команды MSBuild, создающей ее. -
FileSystem— публикация путем копирования файлов в указанную папку.
Указание конфигурации сборки и платформы
Конфигурация сборки и платформа должны быть заданы в Visual Studio или в командной строке. Профили публикации включают свойства, именованные LastUsedBuildConfiguration и LastUsedPlatform, но невозможно задать эти свойства, чтобы определить, как создается проект. Дополнительные сведения см. в MSBuild: как задать свойство конфигурации в блоге Sayed Hashimi.
Итоги
Теперь вы развернули обновление приложения с помощью командной строки.
В следующем руководстве вы увидите пример расширения конвейера веб-публикации. В этом примере показано, как развернуть файлы, которые не включены в проект.