web-dev-qa-db-fra.com

Déploiement de versions WebSite sur Azure à partir de VSTS Release Management

Je botte les pneus sur l'aperçu du nouveau système de gestion des versions de Visual Studio Team Services. Mon scénario est un site Web classique (ASP.NET 4.5) avec un dépôt Git hébergé dans VSTS. La définition de build est réussie comme on le voit ici:

enter image description here

Il est configuré pour publier comme un artefact qui peut être récupéré par Release Manager comme indiqué ici:

enter image description here

Du côté de Release Manager, cet artefact est correctement lié, comme indiqué ici:

enter image description here

Et ici, vous pouvez voir mes environnements ainsi que les tâches associées (les 3 sont des clones)

enter image description here

Lorsque j'exécute la version que la version publie correctement, elle se connecte à mon abonnement, mais lorsqu'elle tente de trouver le fichier de package, elle présente l'erreur suivante à la ligne 101 du journal de sortie:

"Aucun fichier n'a été trouvé à déployer avec le modèle de recherche 'C:\a\4fe43dd1a ***. Zip'"

Voici la sortie complète:

enter image description here

C'est là que je suis bloqué car j'ai supposé que mon lien d'artefact via VSTS devrait résoudre ce chemin pour moi. Évidemment, il me manque quelque part une pièce importante du puzzle, mais j'ai suivi la documentation disponible du mieux que je peux.

Si quelqu'un a une solution ou peut me diriger dans la bonne direction, ce serait très apprécié!

--- EDIT ---

J'ai utilisé le sélecteur de fichiers pour sélectionner un package de déploiement Web (voir ci-dessous). J'ai essayé d'utiliser le site Web racine ainsi que le dossier bin. Les deux tentatives entraînent une erreur indiquant: "Aucun fichier n'a été trouvé à déployer avec le modèle de recherche 'C:\a\4fe43dd1a\Définition de site Web classique\drop\ClassicWebsite\bin'"

enter image description here

--- EDIT 2 ---

J'ai ajouté une tâche MSBuild à mon processus de CONSTRUCTION avec les MSBuildArguments suivants

/p:OutDir=$(build.stagingDirectory) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true

et dans ma tâche de copie/publication d'artefacts, j'ai limité ma sortie à la copie des fichiers .Zip uniquement. Maintenant, dans mon processus de libération lorsque je navigue pour trouver un "package de déploiement Web", le dossier "drop" est vide. Voici une capture d'écran:

enter image description here

Je pense que je suis sur la bonne voie, j'ai juste besoin d'aide pour régler mes tâches BUILD afin de générer les bons artefacts pour mon processus de libération à utiliser. Toute aide serait appréciée.

28
INNVTV

Le package de déploiement n'est pas copié dans le dossier des artefacts. C'est pourquoi la gestion des versions ne trouve pas le package. La définition de "Copier et publier les artefacts de construction" sur les éléments suivants devrait résoudre votre problème: VSTS Copy and Publish Artifacts drop build step

23
Eddie Chen - MSFT

Remplacez $(System.DefaultWorkingDirectory) par $(Agent.ReleaseDirectory). Les artefacts seront placés dans ce dossier. Je ne sais pas exactement à quoi mappe $(System.DefaultWorkingDirectory), mais j'ai l'impression que c'est quelque chose en dehors du dossier utilisé par l'agent pour votre version.

Assurez-vous également que les artefacts publiés contiennent le fichier Zip attendu - si le package de déploiement n'est pas créé ou si vous ne publiez pas le dossier de sortie qui contient le package, vous ne pourrez évidemment pas le publier plus tard. .

Lorsque vous créez votre application Web, assurez-vous qu'elle est empaquetée pour le déploiement à l'aide des arguments MSBuild qui la conditionnent. Quelque chose comme ça devrait fonctionner:

/p:OutDir=$(build.stagingDirectory) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true

5
Daniel Mann