веб-развертывание 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>
Запустите проект и выберите страницу "О программе".
Развертывание для тестирования с помощью командной строки
Вы не будете развертывать другое изменение базы данных, поэтому отключите развертывание базы данных 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. - Вы можете успешно опубликовать один проект, когда другой даже не создает. Дополнительные сведения см. в статье о сбое msBuild потока stackoverflow с двумя пакетами.
Если вы указываете отдельный проект вместо решения, необходимо добавить параметр, указывающий версию 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 в блоге Sayed Hashimi.
Указание профиля публикации
Профиль публикации можно указать по имени или по полному пути к 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 : как задать свойство конфигурации в блоге Sayed Hashimi.
Итоги
Теперь вы развернули обновление приложения с помощью командной строки.
В следующем руководстве вы увидите пример расширения конвейера веб-публикации. В этом примере показано, как развернуть файлы, которые не включены в проект.