如何将IIS 7 Web部署与MSBuild(TeamCity)集成

时间:2010-05-17 08:28:35

标签: .net msbuild teamcity

如何将IIS 7 Web部署与MSBuild(TeamCity)集成?

2 个答案:

答案 0 :(得分:38)

Troy Hunt有一个很好的5-part blog series,详细讨论了这个主题。

他已经有效地编译了所有其他资源并将其转换为教程。

这是最清晰(并且信不信由你,最简洁)的方式来做你想做的事。

答案 1 :(得分:16)

经过几天的挣扎,我终于设法让它上班了。最后归结为MSBuild脚本,在登台/测试服务器上安装和配置Web部署,并在Team City中进行设置。

这是很多步骤,一切都可能出错。我会进一步调查和博客,但这是我的第一次尝试。

我正在使用此设置:

  • .NET 4
  • ASP.NET MVC 2
  • TFS 2008
  • Team City
  • IIS7
  • Web Deploy

这是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服务器以及Web(登台)服务器上安装Web部署
  • c:\ inetpub \ Webapplication \ www是Web服务器上的目录
  • webdeploy用户名是Web服务器上的本地Windows帐户,可以完全访问c:\ inetpub \ Webapplication \ www

制剂

Team City:

我使用上面的MSBuild脚本设置了新的构建配置,并将目标设置为Deploy