Как интегрировать развертывание IIS 7 в MSBuild (TeamCity)?
Как интегрировать развертывание IIS 7 Web с помощью MSBuild (TeamCity)
Ответ 1
Трой Хант имеет отличную 5-часть блога, которая подробно обсуждает эту тему.
Он эффективно скомпилировал все остальные ресурсы и превратил их в учебник.
Это самый ясный (и верьте или нет, самый краткий) способ сделать то, что вы хотите.
Ответ 2
Наконец-то мне удалось заставить его работать после нескольких дней борьбы. Он, наконец, сводится к MSBuild script, установке и настройке развертывания веб-страниц на сервере постановки/тестирования и настройке его в Team City.
Это много шагов, и все может пойти не так. Я буду исследовать дальше и блог об этом, но это моя первая попытка, которая работает.
Я использую эту настройку:
- .NET 4
- ASP.NET MVC 2
- TFS 2008
- Team City
- IIS7
- Веб-развертывание
Вот MSBuild script:
<?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 для работы в промежуточной среде
- Строка script должна находиться в том же каталоге, что и Webapplication.csproj
- Веб-развертывание должно быть установлено на сервере Team City, а также на веб-сервере (промежуточном) сервере
- c:\inetpub\Webapplication\www - это каталог на веб-сервере
- Имя пользователя webdeploy - это локальная учетная запись Windows на веб-сервере с полным доступом к c:\inetpub\Webapplication\www
Подготовка:
- Я выполнил следующие шаги: http://technet.microsoft.com/en-us/library/dd722796(WS.10).aspx
- Я следил за частью 1 на http://learn.iis.net/page.aspx/516/configure-the-web-deployment-handler/
- и создал правило contentPath для c:\inetpub\Webapplication\www и всех пользователей
Город команды:
Я установил новую конфигурацию сборки с помощью MSBuild script выше и установил цель для развертывания