Cómo integrar IIS 7 Web Deploy con MSBuild (TeamCity)
¿Cómo integrar IIS 7 Web Deploy con MSBuild (TeamCity)?
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.
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:
- Seguí los pasos en http://technet.microsoft.com/en-us/library/dd722796 (WS.10).aspx
- Seguí la parte 1 en http://learn.iis.net/page.aspx/516/configure-the-web-deployment-handler /
- y creó una regla contentPath para c:\inetpub\Webapplication\www y todos los usuarios
Ciudad del Equipo:
Configuré una nueva configuración de compilación utilizando el script de MSBuild anterior y establecer el destino para Implementar
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