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:
Il est configuré pour publier comme un artefact qui peut être récupéré par Release Manager comme indiqué ici:
Du côté de Release Manager, cet artefact est correctement lié, comme indiqué ici:
Et ici, vous pouvez voir mes environnements ainsi que les tâches associées (les 3 sont des clones)
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:
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'"
--- 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:
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.
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