Comment demander à TFS de déployer plusieurs applications Web contenant une seule solution?
Nous avons une solution unique qui contient une webapp projet et l'accompagnement de projets. Notre TFS 2010 est la construction de cette solution tous les soirs et au déploiement de l'application web à un serveur IIS. Il fonctionne comme un jeu d'enfant.
Dans l'onglet Processus de la TSF définition de build, vous pouvez spécifier la "MSBuild Arguments". C'est la valeur qui est définie dans notre définition de build (tous dans une seule ligne):
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=WMSVC
/p:MSDeployServiceUrl=<service url of IIS>
/p:DeployIisAppPath="<a website>"
/p:UserName=<domain>\<user
/p:Password=<password>
Ce blog explique l'ensemble de l'installation:
http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html.
Donc bon.
Maintenant, nous avons ajouté une deuxième webapp projet qui nous voulons être déployé aussi à la même IIS chaque nuit. Malheureusement, dans ce cas, le programme d'installation n'est pas applicable. La TSF déploie seulement une webapp.
Il existe d'autres avec le même problème:
TFS 2010 + MSDeploy lorsque la solution a plusieurs applications web
et
WebDeploy de déployer de multiples sites web
Vishal R. Joshi suggère d'ajouter quelques propriétés à chaque webapp projet. Maintenant, la version release va générer le webpackage (fichier zip) pour chaque webapp projet qui a les propriétés suivantes sont définies:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DeployOnBuild>True</DeployOnBuild>
<DeployTarget>Package</DeployTarget>
<CreatePackageOnPublish>true</CreatePackageOnPublish>
</PropertyGroup>
Ok. Mais comment apporter de la TSF pour le déploiement de chaque webapp pour les services IIS? D'autres idées?
source d'informationauteur Olaf
Vous devez vous connecter pour publier un commentaire.
Que Vishal décrit dans l'article du blog est lié à vous-même, tous les MSBuild paramètres peuvent être déplacés à l'intérieur de la csproj. Ensuite, cela signifie que chaque projet peut avoir ses propres paramètres.
J'ai une solution unique avec 6 projets, 4 bibliothèques de classe et les 2 web (WCF, MVC app). J'ai suivi la directive de Vishal blog et simplement déplacé tous mes MSBuild paramètres dans chaque fichier csproj.. c'est à dire
Assurez-vous que vous supprimez ensuite les paramètres de la définition de build.
TFS déploie alors comme prévu.. chaque projet dans le bon dossier spécifié que le répertoire d'accueil de chaque site IIS.
Aussi il est intéressant de noter que vous ne pouvez pas inclure le DeployIisAppPath dans le PropertyGroup comme ci-dessus, mais utiliser les propriétés du projet page pour spécifier pour chaque configuration de build. (Clic droit sur chaque projet > Propriétés > Emballage/Publier le site Web).
Il m'a fallu 2 jours sur ce problème. J'ai trouvé une vraie solution simple qui fonctionne pour moi.
J'ai créé 2 plus de configurations à l'aide de la solution du Gestionnaire de Configuration nommé DeployMvc1, DeployMvc2. Décochez construire pour MVC2 projet dans DeployMvc1 et décochez construire pour MVC1 projet dans DeployMvc2.
Ensuite, j'ai créé 2 les définitions de build DeployMvc1Build et DeployMvc2Build. La première écoute MVC1 projet avec
La deuxième écoute pour MVC2 projet avec
Alors mon problème est résolu.
J'ai une situation similaire où j'ai un TFSBuild.proj fichier de build et je générer une poignée de des installateurs et des forfaits à la fin de la construction, de mieux les cibler chacun des environnements de déploiement: Développement, Test, mise en scène et la Production. Les propriétés définies dans @Matt Berger de réponse peut aussi être fournis directement à l' MSBuild tâche à la place de l'écriture dans les dossiers de projets.
Dans ce cas, il est possible de spécifier le DeployIisAppPath et cette valeur sera écrit dans le package de déploiement des paramètres de fichier.
Une option serait d'écrire cela dans une tâche MSBuild. De cette façon, vous pourriez supporter de multiples IE illimité webapp déploiements. Je n'ai pas encore de port sur notre proj fichiers qui font ce qui est pourquoi je n'ai pas rencontré ce problème. De toute façon, voici un article qui décrit ce processus:
L'Article
Espère que ça aide