Как интегрировать IIS 7 Web Deploy с MSBuild (TeamCity) - PullRequest
40 голосов
/ 17 мая 2010

Как интегрировать IIS 7 Web Deploy с MSBuild (TeamCity)?

Ответы [ 2 ]

38 голосов
/ 15 марта 2011

У Троя Ханта есть отличная серия блогов из 5 частей , в которой подробно рассматривается эта тема.

Он эффективно скомпилировал все остальные ресурсы и превратил их в учебник.

Это самый ясный (и, хотите верьте, хотите нет, самый лаконичный) способ сделать то, что вы хотите.

16 голосов
/ 10 августа 2010

Мне, наконец, удалось заставить его работать после нескольких дней борьбы. Наконец, все сводится к сценарию MSBuild, устанавливающему и настраивающему веб-развертывание на промежуточном / тестовом сервере и настраивающему его в Team City.

Это много шагов, и все может пойти не так. Я буду исследовать дальше и вести блог об этом, но это моя первая попытка, которая работает.

Я использую эту настройку:

  • .NET 4
  • ASP.NET MVC 2
  • TFS 2008
  • Город команды
  • IIS7
  • Веб-развертывание

Вот скрипт MSBuild:

    <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Configuration>Release</Configuration>
        <Platform>AnyCPU</Platform>
    </PropertyGroup>

    <Import Project="Webapplication.csproj" />

    <Target Name='Deploy' DependsOnTargets='Build;Package' >
        <Exec Command='"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" 
                -source:contentpath="$(teamcity_build_checkoutDir)\Main\source\Webapplication\obj\Release\Package\PackageTmp\" 
                -dest:contentpath="c:\inetpub\Webapplication\www",includeAcls=false,computername="https://(stagingserver-name):8172/msdeploy.axd?Site=Webapplication",authType=Basic,userName=(staginserver-name)\webdeploy,password=******** 
                -allowUntrusted 
                -verb:sync' />
    </Target>
</Project>

Ключевые моменты:

  • Я настроил Web.Release.config для работы в промежуточной среде
  • Сценарий сборки должен находиться в том же каталоге, что и Webapplication.csproj
  • Веб-развертывание должно быть установлено как на сервере Team City, так и на веб (промежуточном) сервере
  • c: \ inetpub \ Webapplication \ www - это каталог на веб-сервере
  • Имя пользователя webdeploy - это локальная учетная запись Windows на веб-сервере с полным доступом к c: \ inetpub \ Webapplication \ www

Подготовка:

Город команды:

Я настроил новую конфигурацию сборки с помощью приведенного выше сценария MSBuild и установил для цели значение Deploy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...