Jenkins ne pouvez pas trouver msbuild
J'ai installé Jenkins sur Windows Server 2012, tout a bien fonctionné. Cependant, une fois j'ai essayé de configurer le MSBuild et VS les métriques de Code des plugins, j'obtiens l'erreur suivante:
C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe n'est pas un répertoire sur le Jenkins maître (mais peut-être qu'il existe sur certains esclaves)
J'ai vérifié les chemins et ils sont corrects, mais Jenkins ne peuvent pas y accéder.
Quelqu'un peut-il indiquer ce qui peut être mauvais.
Grâce
Jamais celui-ci?
OriginalL'auteur Lawrence Phillips | 2014-06-04
Vous devez vous connecter pour publier un commentaire.
Jenkins était très neutre de vous mentir à ses exigences.
MSBuild.exe
est un exécutable, pas un répertoire tout comme les rapports. La zone d'entrée attend vous pour identifier le dossier contenant MSBuild.exe mais le Travail exécuté MSBuild attend de vous que vous avez fourni le nom de fichier. La façon de contourner cette contradiction entre le Travail et le Gestionnaire de Configuration est àAdd the MSBuild
de configuration du plugin sans fournir le nom de l'exécutable dans lePath to MsBuild
d'entrée pour satisfaire les exigences en matière de validation de l' "Ajouter le Plugin" de la page.Une fois le Plugin a été ajouté, vous pouvez modifier la
Path to MsBuild
pour contenir le nom de l'exécutable (qui, bien sûr, estMSBuild.exe
) et plutôt que d'une erreur de validation, vous recevrez un avertissement.Il va contourner la validation initiale qui a été nécessaire pour Ajouter de la brancher et de "travail".
Votre Jenkins service sera probablement encore besoin d'obtenir l'accès au système de fichier par "lui permettant d'interagir avec le bureau", comme cela a été mentionné par d'autres affiches.
Mais votre principal problème est que la prise dans les conflits de configuration avec l'agent qui consomme de la configuration et afin d'utiliser le plugin pour effectuer construit, vous devez utiliser une solution de contournement.
Fixe ma réponse; n'avais pas configuré jenkins en temps, et apparemment oublié le petit détail que vous avez dû entrer dans la MSBuild configuration du plugin avec le "chemin de MSBuild" sans nom de fichier afin que le bouton [Ajouter] était disponible, puis modifiez le chemin d'accès à l'exécutable, ignorer le message d'avertissement, puis cliquez sur [Sauvegarder] de toute façon. Après cette modification, j'ai couru un build de mon échantillon et il a réussi.
C'est un vieux post, mais juste pour aider celui qui veut la fin, jusqu'ici, pour éviter de contracter le warinig message supprimer l'extension ".exe" de la msbuild quelque chose homoserine llike ci-dessous: (msbuld est le fichier exe pas un filder) C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild
J'ai eu un problème où nuget.exe permettrait de détecter automatiquement msbuild versions et de détecter une version différente à différents moments. J'ai essayé d'utiliser l'-MSBuildPath arg, mais ne pouvait pas obtenir de résoudre le chemin, même si le chemin certainement existé. Après l'ajout de la MSBuild installation comme vous l'avez suggéré mon nuget.exe systématiquement détecté MSBuild 15 correctement.
OriginalL'auteur K. Alan Bates
J'ai eu le même problème, La solution pour moi a été:
Si vous exécutez Jenkins comme une Fenêtre du service, vous aurez probablement besoin pour activer le service à interagir avec le bureau. Procédez de la manière suivante:
Ouvrir le module de Services (appuyez sur: WindowsKey+R > les Services.msc)
"Autoriser le service à interagir avec le bureau" case à cocher
-- OU --
Vous pouvez exécuter simplement exécuter Jenkins via la ligne de commande. C'est à dire: "java-jar jenkins.de la guerre" (jenkins.la guerre de fichier se trouve dans votre Jenkins Répertoire d'installation).
Acclamations,
J.
OriginalL'auteur Jibrilat
De supprimer l'extension ".exe" à partir de la fin de la msbuild.exe sur votre chemin pour éviter les mises en garde:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild
.OriginalL'auteur Fred Jand
De sorte que vous disposez de deux serveurs avec Jenkins, un maître (qui n'a pas msbuild) et de l'autre un esclave (celui-ci n'ont msbuild). Quand votre travail s'exécute (le maître) msbuild étape échoue, car il n'existe pas sur le maître.
Vous devez forcer votre travail ne s'exécute sur le serveur avec msbuild, pas le maître. Voici comment faire:
msbuild
msbuild
OriginalL'auteur JZimmerman
Bien
C:\Windows\Microsoft.NET\Framework\v3.5\
existe pas sur le serveur Maître?OriginalL'auteur Slav
Je vois aussi le "...n'est pas un répertoire sur le Jenkins maître..." message d'erreur, mais lorsque je tente de construire, il fonctionne de toute façon.
N'oubliez pas de sélectionner la MME version de Build de votre projet au lieu de (par défaut).
Voir: construire .net application dans Jenkins à l'aide de MSBuild
OriginalL'auteur StevenGodin
Ressemble à ce problème a été résolu dans la version 1.26: JENKINS-28679
OriginalL'auteur BogeyMan