L'équipe de Construire: Publier localement à l'aide de MSDeploy
Je suis juste de commencer avec l'équipe de la construction de la fonctionnalité et de je suis la recherche de la quantité de choses nécessaires pour faire quelque chose d'assez simple, un peu écrasante. Ma configuration est à l'heure actuelle une solution avec une application web, une assemblée d'application et une application de test. L'application web a un PublishProfile qui publie via le système de fichiers.
J'ai un build TFS définition qui s'appuie actuellement l'ensemble de la solution, tous les soirs, et le laisse tomber sur un partage réseau comme une sauvegarde des anciennes versions. Tout ce que je veux faire maintenant, c'est avoir la PublishProfile j'ai déjà publier l'application web pour moi. Je suis sûr que c'est vraiment simple, mais j'ai joué avec MSBuild commandes pour une journée complète maintenant avec pas de chance. À l'aide!
Vous devez vous connecter pour publier un commentaire.
Malheureusement le partage de la publication du Profil n'est pas pris en charge ou mis en œuvre dans MSBuild. La logique de publier le profil est contenue dans VS lui-même. Heureusement, le profil ne contient pas beaucoup d'informations donc, il ya des façons d'obtenir ce que vous cherchez. Nos objectifs ne sont pas spécifiquement exactement les mêmes étapes suivie par le dialogue publier, mais pour obtenir le même résultat à partir d'esprit d'équipe, vous avez deux choix, je vais exposer ici.
Lorsque vous configurez votre Équipe définition de Build pour déployer vous devez passer dans certaines valeurs pour les MSBuild Arguments pour le processus de génération. Voir l'image ci-dessous où j'ai mis en lumière cette.
Option 1:
Passer les arguments suivants:
Laissez-moi vous expliquer ces paramètres un peu, de vous montrer le résultat alors expliquer l'option suivante.
DeployOnBuild=true
:Ceci indique le projet d'exécuter les cible(s) défini dans laDeployTarget
propriété.DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder
: Spécifie le DeployTarget cible.PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish"
: Il indique l'emplacement où les fichiers de package sera écrit. C'est l'emplacement où les fichiers sont écrits avant qu'ils ne soient emballés.AutoParameterizationWebConfigConnectionStrings=false
: Ceci indique la Publication Web Pipeline (WPP) pour ne pas paramétrer les chaînes de connexion dans le web.fichier de configuration. Si vous ne spécifiez pas de cela, alors votre connexion de la chaîne de valeurs seront remplacés par des espaces réservés comme $(ReplacableToken_dummyConStr-Web.config Connexion String_0)Après vous faites cela, vous pouvez lancer une de construire ensuite à l'intérieur de la PackageTempRootDir emplacement, vous trouverez un PackageTmp dossier et il contient le contenu que vous recherchez.
Option 2:
Donc pour l'option précédente, vous avez probablement remarqué qu'il crée un dossier nommé PackageTmp et si vous ne voulez pas cela, alors vous pouvez utiliser les options suivantes à la place.
La différence est qu'au lieu de
PackageTempRootDir
vous voulez passer dans_PackageTempDir
. La raison pour laquelle je ne suggère pas que pour commencer, c'est parce que MSBuild propriétés commençant par _ signifier que la propriété essentiellement en "interne", dans le sens que dans une future version, il peut signifier quelque chose d'autre ou ne pas exister du tout. Donc à utiliser à vos propres risques.Option 3
Avec tout ce que dit, vous pouvez simplement utiliser la génération de package de votre site web. Si vous voulez faire cela, puis utilisez les arguments suivants.
Quand vous faites cela dans le dossier de dépôt de votre build, vous trouverez la _PublishedWebsites dossier comme vous le feriez normalement, puis à l'intérieur de qu'il y aura un dossier {ProjectName}_Package où {ProjectName} est le nom du projet. Ce dossier va contenir le colis, l' .cmd fichier, le fichier de paramètres et de quelques autres. Vous pouvez utiliser ces fichiers pour déployer votre site web.
J'espère que ce n'était pas de l'information sur la charge.
/p:ExcludeXmlAssemblyFiles=false
était nécessaire sur la ligne de commande..La possibilité de publier des sites web, configurer IIS et pousser les modifications de schéma pour la DEV->QA->cycle de développement a requis une configuration personnalisée pour imiter de publier ou de code personnalisé où les paramètres IIS sont impliqués.
Visual Studio 2013.2 Microsoft a ajouté un produit tiers qui gère le déploiement de sites web, des changements de configuration et de déploiement de base de données avec windows workflow et serait la solution recommandée pour l'automatisation du déploiement de build TFS.
Plus d'informations peuvent être trouvées ici:
http://www.visualstudio.com/en-us/explore/release-management-vs.aspx
Vous pouvez utiliser le Publier/Déployer dans Visual Studio 2010.
Voir http://www.ewaldhofman.nl/post/2010/04/12/Auto-deployment-of-my-web-application-with-Team-Build-2010-to-add-Interactive-Testing.aspx pour plus d'informations