Question

Je viens juste de commencer avec la fonctionnalité de construction de l'équipe et je trouve l'énorme quantité de choses nécessaires pour faire quelque chose assez simple un peu écrasante. Ma configuration en ce moment est une solution avec une application web, une application de montage et une application de test. L'application Web a un PublishProfile mis en place qui publie par l'intermédiaire du système de fichiers.

J'ai une définition de build TFS mis en place qui construit actuellement la nuit toute solution et laisse tomber sur un partage réseau en tant que sauvegarde de l'ancien builds. Tout ce que je veux faire est maintenant la PublishProfile que je l'ai déjà configuré publierai l'application Web pour moi. Je suis sûr que cela est vraiment simple, mais je l'ai joué avec des commandes MSBuild pour une journée complète maintenant sans chance. Aide!

Était-ce utile?

La solution

Partage Malheureusement du profil de publication est pas pris en charge ou mis en œuvre MSBuild. La logique de publier du profil est contenu dans VS lui-même. Heureusement, le profil ne contient pas beaucoup d'informations de sorte qu'il existe des moyens pour parvenir à ce que vous recherchez. Nos objectifs ne prennent pas en charge spécifiquement les étapes exactement les mêmes que Suivie par la publication de dialogue, mais pour obtenir le même résultat de la construction de l'équipe que vous avez deux choix, je vais décrire les deux ici.

Lorsque vous configurez votre définition de Team Build afin de vous déployer besoin de passer quelques valeurs pour les MSBuild Les arguments en faveur du processus de construction. Voir image ci-dessous où je l'ai mis en évidence cela. text alt

Option 1: Passez dans les arguments suivants:

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false

Laissez-moi vous expliquer ces paramètres un peu, vous montrer le résultat alors expliquer l'option suivante. DeployOnBuild=true. Ceci indique le projet d'exécuter la cible (s) défini dans la propriété DeployTarget

DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder. Celle-ci précise la cible DeployTarget

PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish": Ceci indique l'emplacement où les fichiers du package seront écrits. Ceci est l'endroit où les fichiers sont écrits avant d'être emballés.

AutoParameterizationWebConfigConnectionStrings=false: Ceci indique le pipeline de publication Web (WPP) de ne pas paramétrer les chaînes de connexion dans le fichier web.config. Si vous ne spécifiez pas alors vos valeurs de chaîne de connexion seront remplacés par des espaces réservés comme $ (ReplacableToken_dummyConStr-Web.config Connexion STRING_0)

Une fois que vous faites cela, vous pouvez lancer une construction puis à l'intérieur de l'emplacement PackageTempRootDir vous trouverez un dossier PackageTmp et celui-ci contient le contenu que vous recherchez.

Option 2: Donc, pour l'option précédente, vous avez sans doute remarqué que cela crée un dossier nommé PackageTmp et si vous ne voulez pas que vous pouvez utiliser les options suivantes au lieu.

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false

La différence est qu'au lieu de PackageTempRootDir vous passer _PackageTempDir. La raison pour laquelle je ne suggère que, pour commencer est parce que les propriétés MSBuild qui commencent par _ signifient que la propriété essentiellement « interne » au sens que dans une version future, il peut vouloir dire autre chose ou non exister. Il faut donc utiliser à vos propres risques.

3

Avec tout ce que dit, vous pouvez simplement utiliser la construction pour emballer votre site. Si vous voulez faire ensuite utiliser les arguments suivants.

/p:DeployOnBuild=true;DeployTarget=Package

Quand vous faites cela dans le dossier de dépôt pour votre construction, vous trouverez le _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 contiendra le package, le fichier .cmd, le fichier de paramètres et un couple d'autres. Vous pouvez utiliser ces fichiers pour déployer votre site.

J'espère que n'a pas d'informations sur la charge.

Autres conseils

La possibilité de publier des sites web, configurer IIS et les changements de schéma push pour dev-> QA> Cycle RELEASE a exigé soit une configuration personnalisée Imiter publient des articles ou du code personnalisé où les paramètres IIS sont impliqués.

de Visual Studio 2013,2 Microsoft a ajouté un produit tiers qui gère le déploiement de sites Web, les changements de configuration et le déploiement de bases 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- nous / explorer / release-gestion vs.aspx

Vous pouvez utiliser la publication / Déploiement dans Visual Studio 2010.

Voir http://www.ewaldhofman.nl/post/2010/04/12/Auto-deployment-of-my-web-application-with-Team-Build-2010 -À-add-interactive-Testing.aspx pour plus d'informations

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top