Поделиться через


веб-развертывание ASP.NET с помощью Visual Studio: развертывание командной строки

Том Дайкстра

Скачивание начального проекта

В этой серии учебников показано, как развернуть (опубликовать) веб-приложение ASP.NET для приложение Azure службы веб-приложения или стороннего поставщика услуг размещения с помощью 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>

Запустите проект и выберите страницу "О программе".

Страница About

Развертывание для тестирования с помощью командной строки

Вы не будете развертывать другое изменение базы данных, поэтому отключите развертывание базы данных 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.

Итоги

Теперь вы развернули обновление приложения с помощью командной строки.

Снимок экрана: страница

В следующем руководстве вы увидите пример расширения конвейера веб-публикации. В этом примере показано, как развернуть файлы, которые не включены в проект.