Cómo integrar IIS 7 Web Deploy con MSBuild (TeamCity)


¿Cómo integrar IIS 7 Web Deploy con MSBuild (TeamCity)?

Author: Yoann. B, 2010-05-17

2 answers

Troy Hunt tiene una excelente serie de blogs de 5 partes que repasa este tema en detalle.

Ha compilado efectivamente todos los otros recursos que hay y los ha convertido en un tutorial.

Es la forma más clara (y aunque no lo creas, la más concisa) de hacer lo que quieres.

 37
Author: Noah Heldman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-14 22:12:36

Finalmente logré que funcionara después de varios días de lucha. Finalmente se reduce a un script de MSBuild, instalando y configurando web deploy en el servidor de pruebas/pruebas y configurándolo en Team City.

Son muchos pasos y todo puede salir mal. Voy a investigar más y blog sobre ello, pero este es mi primer intento que funciona.

Estoy usando esta configuración:

  • . NET 4
  • ASP.NET MVC 2
  • TFS 2008
  • Equipo Ciudad
  • IIS7
  • Web Deploy

Aquí está el script de 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>

Puntos clave:

  • Configuré la Web.Lanzar.config para trabajar en el entorno de puesta en escena
  • El script de compilación debe estar ubicado en el mismo directorio que Webapplication.csproj
  • Web deploy debe estar instalado en el servidor de Team City, así como en el servidor web (staging)
  • c:\inetpub\Webapplication\www es un directorio en el servidor web
  • El nombre de usuario de webdeploy es una cuenta local de Windows en el servidor web con acceso completo a c:\inetpub\Webapplication\www

Preparaciones:

Ciudad del Equipo:

Configuré una nueva configuración de compilación utilizando el script de MSBuild anterior y establecer el destino para Implementar

 16
Author: Rickard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-25 02:37:53