Mise en travail MSDeploy sur notre build / serveur d'intégration - une mise à niveau MSBuild est-il nécessaire?

StackOverflow https://stackoverflow.com/questions/2608594

Question

Nous avons ce que je pense est un processus de construction assez standard: 1. Développeur: Vérifiez dans le code 2. Construire: Sondages repo, voit le changement, et démarre la construction que: 3. Construire: Mises à jour de prise en pension, Builds w / MSBuild, exécute des tests unitaires w / nunit, 4. Construire: crée package d'installation

Notre équipe de sécurité nous permet de tirer à partir du serveur de construction, mais ne permet pas le serveur de build pour pousser. Nous avons donc RdP généralement, d / l les installateurs et les exécuter, ce qui exclut les services de déploiement slicks, donc je besoin de générer des paquets à la place. Je voudrais utiliser MSDeploy, sauf que nous avons les questions suivantes:

  1. Nous sommes sur NET 3.5, et la cible MSBuild (Package) qui utilise MSDeploy 4.0 exige. Est-ce que je avais besoin d'installer autre que .net 4.0 RC pour cela? (Ne serait-MSBuild faire partie de cette mise à jour?)
  2. Lorsque je produis des paquets avec MSDeploy, je vois que je n'ai pas seulement 1 fichier. Il y a un zip, deploy.cmd, SourceManifest.xml et SetParameters.xml. Quels sont tous les autres fichiers, et pourquoi ne seraient-ils tous être dans le « paquet »?
  3. Il semble que vous pouvez créer des packages en disant que le système regarder un site IIS travail. Mais si les paquets sont construits à partir d'un environnement de CI, vous n'êtes pas fondamentalement pas de chance ici? Il se sent comme ils ont conçu une partie de ce pour les développeurs à petite échelle de leur environnement déployant dev. C'est un beau cas d'utilisation, mais je suis intéressé à voir ce que l'expérience-entreprise de tout le monde est avec l'outil

Toutes les suggestions?

Était-ce utile?

La solution

Si vous ne l'utilisez Visual Studio 2010 pour votre application alors je suggère que vous choisissez une des options suivantes:

  1. Utilisez msdeploy.exe
  2. Installer Visual Studio 2010 sur votre serveur de build et nous les tâches MSDeploy eux-mêmes

Laissez-moi vous expliquer un peu plus.

Option 1

MSDeploy lui-même n'a pas de dépendance à l'égard MSBuild pour que vous puissiez l'installer par lui-même sur votre serveur de build pour créer les packages pour vous. Vous pouvez le télécharger . Après cela, vous pouvez créer un script de déploiement MSBuild en utilisant le la tâche d'appeler Exec msdeploy.exe avec la commande pour créer votre package.

A propos de la deuxième option

Les fichiers .targets ainsi que les tâches pour MSDeploy ne sont pas déployées avec le framework .NET, mais avec Visual Studio 2010 lui-même. Donc, si vous vouliez tirer parti de l'un de ceux que vous auriez à installer VS 2010 sur votre serveur de build.

Vous avez mentionné l'aide du module cible dans votre post. Vous ne serez pas en mesure d'utiliser parce que cette cible est une partie d'un processus de construction plus pour .NET 4 projets. Ce que vous pouvez faire est de créer un fichier MSBuild séparé ( séparés comme dans pas votre fichier de projet ) qui utilise MSBuild 4 pour appeler les tâches qui sont livrés avec VS 2010 pour le Web déploiement.

Ici, je réponds à votre liste numérotée spécifiquement

  1. Vous ne devez installer Visual Studio 2010 puisque ces tâches sont expédiées avec VS lui-même et pas le cadre.
  2. Ces fichiers sont utilisés pour interagir avec votre package. Votre colis présente votre demande dans son ensemble. Le deploy.cmd va msdeploy.exe invoquer pour effectuer le déploiement pour vous. SourceManifest.xml et SetParameters.xml sont utilisés pour personnaliser le déploiement de votre application. deploy.cmd utilisera ces fichiers lorsque msdeploy.exe invoquer. En d'autres termes, si vous voulez personnaliser le chemin où l'application Web vous serait installé que mettre SetParameters.xml ainsi que d'autres options.
  3. Votre droit les paramètres peuvent provenir d'IIS, mais de nombreux développeurs préfèrent utiliser le serveur d'application VS au lieu de IIS. C'est ma préférence. Ce que je suggère dans ce cas est de déployer votre application sur un environnement que vous utiliserez comme modèle. Faire tous les paramètres IIS que vous avez besoin, créez votre package MSDeploy puis récupérer le fichier Archive.xml de l'emballage et l'utiliser lorsque vous créez votre propre package. Une autre option consiste à configurer un serveur IIS qui votre processus de construction pourrait déployer pour, puis utiliser MSDeploy pour synchroniser simplement les fichiers que le maquillage de votre application, puis une nouvelle fois pour générer le package à partir de ce serveur IIS.
scroll top