2010-05-17 4 views

Répondre

36

Troy Hunt a une excellente 5-part blog series qui va sur ce sujet en détail.

Il a efficacement compilé toutes les autres ressources disponibles et les a transformées en un tutoriel.

C'est le moyen le plus clair (et croyez-le ou non, le plus concis) de faire ce que vous voulez.

16

J'ai finalement réussi à le faire fonctionner après plusieurs jours de lutte. Il se résume finalement à un script MSBuild, en installant et en configurant le déploiement Web sur le serveur de test/test et en le configurant dans Team City.

Il y a beaucoup d'étapes et tout peut mal tourner. Je vais enquêter plus loin et bloguer à ce sujet mais c'est ma première tentative qui fonctionne.

J'utilise cette configuration:

  • .NET 4
  • ASP.NET MVC 2
  • TFS 2008
  • équipe Ville
  • IIS7
  • Web Deploy

Voici le MSBuild Scénario:

<?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> 

Points clés:

  • Je mis en place le Web.Release.config de travailler dans l'environnement de la mise en scène
  • Le script de construction doit se trouver dans le même répertoire que Webapplication.csproj
  • deploy Web doit être installé sur le serveur Team Ville ainsi que sur le serveur Web (mise en scène)
  • c: \ inetpub \ WebApplication \ www est un répertoire sur le serveur web
  • Le nom d'utilisateur de webdeploy est une fenêtre locale compte sur le serveur Web avec un accès complet à c: \ inetpub \ WebApplication \ www

Préparation:

Ville Équipe:

Je mis en place une nouvelle configuration de construction en utilisant le script MSBuild ci-dessus et a fixé l'objectif à déployer