web-dev-qa-db-fra.com

Erreur 'Aucun agent présentant les fonctionnalités suivantes n'a été trouvé: msbuild, visualstudio, vstest'

Je configure un nouveau serveur de génération à l'aide de TFS 2015 et après avoir configuré l'agent, lorsque j'ai tenté de mettre une génération en file d'attente, j'ai reçu cette erreur:

Aucun agent avec les fonctionnalités suivantes n'a été trouvé: msbuild, visualstudio, vstest

Comment cela peut-il être résolu?

61
Jean Jimenez

Installez Visual Studio sur votre agent de génération, puis redémarrez-le. Le redémarrage de l'agent de génération capturera les fonctionnalités ajoutées.

46
Daniel Mann

Remarque: Tout d'abord, vous pouvez faire tout cela avec l'édition communautaire et TFS Express 2015 sur votre propre serveur (gratuitement jusqu'à cinq utilisateurs). Ne vous inquiétez donc pas de la nécessité d'utiliser la version en ligne de Visual Studio. ou payer pour Visual Studio Professional.


Il est très facile de mal interpréter le message d'erreur fourni et de partir à la chasse aux oies sauvages pour essayer de le déboguer.

Malheureusement, le message lui-même est mal rédigé et c'est le vrai problème.

Voici ce que signifie ce message d'erreur vraiment:

"Aucun agent avec les fonctionnalités suivantes n'a été trouvé: msbuild, Visualstudio, vstest .. En fait, je n'ai trouvé aucun agent de construction configuré pour la file d'attente de construction sélectionnée."

Vous pensez donc que cela ne vous concerne pas parce que vous venez de créer un agent de construction?

Peut-être que oui, mais voici ce qui est probablement arrivé:

  • Vous avez créé un nouveau pool (pour aucune autre raison que celle que vous pensiez devoir faire).
  • Vous avez ensuite créé une file d'attente sous ce pool.
  • Vous avez exécuté le script PowerShell pour créer un agent et vous avez supposé qu'il le plaçait dans le pool que vous venez de créer ....
  • Mais cela n'a pas été fait - cela a été mis dans le pool "par défaut" que vous n'utilisez même pas ...

Aha! Alors voici ce qui se passe quand vous construisez:

  • Vous sélectionnez une file d'attente dans la liste déroulante.
  • TFS essaie de créer en recherchant le pool qui correspond à cette file d'attente. Il ne trouve aucun agent AT ALL dans son intégralité. Vous obtenez donc un message d'erreur stupide et inutile, qui fait échouer le problème.

Lorsque j'ai enfin compris ce qui s'était passé, je viens de supprimer le pool et la file d'attente nommés de façon originale et de revenir à l'utilisation du pool par défaut.

La prochaine fois, j'essaierai de faire plus attention à ce message lors de la configuration de PowerShell:

Configurez cet agent avec quel pool d'agents? (Le nom du pool par défaut est 'default')

Vous devrez créer une file d'attente sous le pool, mais votre agent devrait alors commencer à fonctionner.

Si vous avez un serveur réel avec une capacité absente de votre agent, vous pouvez vérifier ce que votre agent prend en charge via l'onglet "Capacités" affiché ici. Bien sûr, les msbuild, visualstudio and vstest sont tous ici :-)

 Enter image description here

24
Simon_Weaver

Par défaut, lors de l'utilisation du nouveau système de compilation sur VSO, l'option de compilation hébergée n'est pas sélectionnée, ce qui explique comment j'ai abouti à ce message dans Stack Overflow. Si vous êtes habitué à utiliser un serveur de build VSO, voici ce que vous devez faire:

Créez une version hébergée en accédant à l'onglet Général et en changeant votre file d'attente par défaut en hébergée. Plus d'informations sur les restrictions et comment cela fonctionne ici: https://www.visualstudio.com/get-started/build/hosted-agent-pool

7
irhetoric

Vous devez installer la version de Visual Studio correspondante sur la machine de génération (où vous avez installé votre agent). Cela ajoutera les outils et fonctionnalités nécessaires au serveur.

Visual Studio est requis car il installe toutes les cibles de construction requises pour générer vos projets.

Une fois installé, vous devez redémarrer le service Windows de l'agent pour qu'il actualise la liste des fonctionnalités.

Etant donné que vous utilisez l'installation Visual Studio sur la machine de génération, cette installation ne compte pas comme une licence supplémentaire.

0
Rodrigo Werlang

J'utilisais un esclave de construction Xcode pour construire un projet Xcode.

Et le message d'erreur auquel j'ai abouti dans TFS 2015 était

"Aucun agent n'a été trouvé avec les fonctionnalités suivantes: xcode"

J'ai enregistré un OS X sur le site de la construction de l'esclave .

Dans l'étape "Register Agent", j'ai nommé par l'agent de génération:

>> Register Agent:

Enter agent pool (press enter for default) > My-Xcode-Agent-Pool

Je devais donc sélectionner le "My-Xcode-Agent-Pool" comme file d'attente par défaut dans les paramètres de construction. Source: Agents hébergés par Microsoft

0
leviathan

J'ai eu ce problème et il s'est avéré que mon processus de publication avait sélectionné le "mauvais" agent. Il suffit de modifier la version et de définir la file d'attente de l'agent appropriée 

 enter image description here

0
Eric Herlitz

Dans mon cas, après l'installation de MSBuild ( https://www.visualstudio.com/downloads/ , recherchez "Build Tools for Visual Studio 2017"), je devais simplement ajouter le chemin d'accès à MSBuild dans l'environnement PATH variable. L'agent n'a pas détecté MSBuild jusqu'à ce que je l'aie fait.

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

Je n'ai pas eu à installer l'intégralité de Visual Studio IDE. La réponse choisie pour cette question est tout simplement fausse ...

0
computrius

Ce qui a finalement fonctionné pour moi a été d'aller là où j'ai téléchargé l'agent et lancer:

./config.cmd remove puis ./config.cmd pour réinstaller l'agent à partir de la ligne de commande située dans le répertoire de mon agent.

Agent de téléchargement

0
Jesse

Bien qu'aucune des réponses précédentes n'ait fonctionné pour moi, le message de Simon_Weaver m'a dirigé dans la bonne direction.

Il a mentionné que vstest figurait sur sa liste, mais pas sur la mienne. Je l'ai corrigé en ajoutant une fonctionnalité définie par l'utilisateur appelée "vstest" avec le chemin d'accès complet à vstest.console.exe sous Visual Studio 2017.

0
Tom Faust