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:
/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false
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 l' DeployTarget
de la propriété.
DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder
: Ceci spécifie le DeployTarget cible.
PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish"
: 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.
/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false
La différence est qu'au lieu de PackageTempRootDir
vous voulez passer en _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.
/p:DeployOnBuild=true;DeployTarget=Package
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.