Jenkins kann msbuild nicht finden

7

Ich habe Jenkins auf Windows Server 2012 installiert, was alles gut funktioniert hat. Sobald ich jedoch versucht habe, die MSBuild- und VS-Code-Metrik-Plugins zu konfigurieren, erhalte ich den folgenden Fehler:

C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe ist kein Verzeichnis im Jenkins-Master (aber vielleicht existiert es auf einigen Slaves)

Ich habe die Pfade überprüft und sie sind korrekt, aber Jenkins kann nicht darauf zugreifen.

Kann jemand vorschlagen, was falsch ist.

Danke

    
Lawrence Phillips 04.06.2014, 10:52
quelle

7 Antworten

11
%Vor%

Jenkins hat dich ganz nüchtern mit seinen Anforderungen belogen. MSBuild.exe ist eine ausführbare Datei, nicht ein Verzeichnis, so wie es gemeldet wird. Das Eingabefeld erwartet , dass Sie den Ordner identifizieren, der MSBuild.exe enthält , aber der Job, der ausgeführt wird MSBuild erwartet, dass Sie den Dateinamen angegeben haben. Um diese Inkonsistenz zwischen dem Job und dem Configuration Manager herum besteht die Möglichkeit, die Add the MSBuild -Pluginkonfiguration vorzunehmen, ohne den Namen der ausführbaren Datei in der Path to MsBuild -Eingabe anzugeben, um die Validierungsanforderungen der Seite "Add Plugin" zu erfüllen.

Sobald das Plugin hinzugefügt wurde, können Sie den Path to MsBuild so ändern, dass er den Namen der ausführbaren Datei enthält (was natürlich MSBuild.exe ist) und anstelle eines Validierungsfehlers erhalten Sie eine Warnung.

%Vor%

Es wird die anfängliche Validierung umgehen, die erforderlich war, um das Plug-In hinzuzufügen, und es wird "nur funktionieren."

Ihr Jenkins-Dienst muss wahrscheinlich noch Zugriff auf das Dateisystem erhalten, indem er "es erlaubt, mit dem Desktop zu interagieren", wie von anderen Postern erwähnt.

Aber Ihr Hauptproblem besteht darin, dass die Plug-in-Konfiguration in Konflikt mit dem Agenten steht, der die Konfiguration verwendet. Um das Plugin zum Ausführen von Builds zu verwenden, müssen Sie eine Problemumgehung verwenden.

    
K. Alan Bates 12.07.2015 14:01
quelle
4

Ich hatte das gleiche Problem, Die Lösung für mich war:

Wenn Sie Jenkins als Windows-Dienst ausführen, müssen Sie wahrscheinlich den Dienst aktivieren, um mit dem Desktop zu interagieren. Tun Sie Folgendes:

Öffnen Sie das Dienste-Modul (drücken Sie: WindowsKey + R & gt; Services.msc)

  1. Klicken Sie mit der rechten Maustaste auf den Jenkins-Service und wählen Sie "Eigenschaften"
  2. Führen Sie auf der Registerkarte "Anmelden" die Option "Lokales Systemkonto" aus und aktivieren Sie das Kontrollkästchen Kontrollkästchen "Dienst mit dem Desktop interagieren lassen"

- ODER -

Sie können Jenkins einfach über die Befehlszeile ausführen. Dh: "java -jar jenkins.war" (jenkins.war-Datei befindet sich in Ihrem Jenkins-Installationsverzeichnis).

Prost,

J.

    
Jibrilat 12.06.2014 12:05
quelle
4

Entfernen Sie die Erweiterung ".exe" vom Ende der msbuild.exe in Ihrem Pfad, um Warnungen zu vermeiden: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild .

    
Fred Jand 04.04.2016 01:30
quelle
3

Sie haben also zwei Server mit Jenkins, einen Master (der kein msbuild hat) und den anderen einen Slave (dieser hat msbuild). Wenn Ihr Job ausgeführt wird (auf dem Master), schlägt der Msbuild-Schritt fehl, da er auf dem Master nicht existiert.

Sie müssen Ihren Job zwingen, nur auf dem Server mit msbuild und nicht auf dem Master zu laufen. Hier ist, wie Sie das tun:

  1. Öffnen Sie die Konfiguration für den Knoten, auf dem sich msbuild befindet
  2. Fügen Sie im Feld Labels msbuild hinzu.
  3. Speichern Sie die Knotenkonfiguration
  4. Öffnen Sie die Jobkonfiguration
  5. Genau über dem Abschnitt Erweiterte Projektoptionen finden Sie das Kontrollkästchen Einschränken, wo dieses Projekt ausgeführt werden kann und aktivieren Sie es
  6. Fügen Sie im Feld Label-Ausdruck msbuild hinzu.
  7. Speichern Sie den Job
  8. Erstellen Sie den Job
JZimmerman 05.06.2014 17:42
quelle
0

Nun

  • Ist C:\Windows\Microsoft.NET\Framework\v3.5\ auf dem Master-Server vorhanden?
  • Hat der Jenkins-Benutzer Berechtigungen für diesen Ordner?
Slav 04.06.2014 14:03
quelle
0

Ich sehe auch die "... ist kein Verzeichnis auf dem Jenkins-Master ..." Fehlermeldung, aber wenn ich versuche zu bauen, funktioniert es trotzdem.

Vergessen Sie nicht, die MS Build-Version für Ihr Projekt anstelle von (Standard) auszuwählen.

Siehe: Erstellen von .net-Anwendungen in Jenkins mit MSBuild

    
DeadlyGhost1 19.06.2014 14:11
quelle
0

Sieht so aus, als ob dieses Problem in der Version 1.26 gelöst wurde: JENKINS-28679

    
BogeyMan 14.10.2016 17:45
quelle