wake-up-neo.com

Erstellen Sie eine .NET-Anwendung in Jenkins mit MSBuild

Ich habe eine .NET-Anwendung, die auf .NET Framework 3.5 basiert. Ich versuche, diese Anwendung auf dem Jenkins CI-Server zu erstellen. Ich habe das MSBuild-Plugin und den Pfad zur EXE-Datei der Versionen 2.0, 3.5 und 4.0 von MSBuild hinzugefügt. Meine Erstellungsprozesse schlagen jedoch fehl, da die folgende Fehlermeldung angezeigt wird.

Path To MSBuild.exe: msbuild.exe  
Executing command: cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%%  
[Test project] $ cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%%  
'msbuild.exe' is not recognized as an internal or external command,  
operable program or batch file.  
Build step 'Build a Visual Studio project or solution using MSBuild.' marked uild as failure  
Finished: FAILURE  

Könnte mir jemand helfen, bitte?

32
Bijoy K Jose

Damit das MSBuild-Plugin funktioniert, müssen Sie das Plugin im Verwaltungsbildschirm von Jenkins konfigurieren.

HINWEIS: In den neueren Jenkins-Versionen finden Sie die MSBuild-Konfiguration in der globalen Tool-Konfiguration:

enter image description here


Jenkins MSBuild Installation Configuration

Beachten Sie das Feld "Name", in dem ich diese spezielle Konfiguration v4.0.30319 aufgerufen habe. Sie könnten es so nennen, wie Sie möchten, aber im Idealfall wird der Name irgendwie auf die Version verweisen.

Sie müssen später im Jenkins PROJECT, das fehlschlägt, auf diesen Namen verweisen.

Hinweis: Die gelbe Warnung besagt, dass das Feld Pfad zu MSBuild mit einem Verzeichnisnamen anstelle eines Dateinamens ausgefüllt werden sollte. In der Praxis müssen Sie den Dateinamen auch hier eingeben (zB msbuild.exe), sonst schlägt der Build-Schritt fehl.

Fahren Sie im fehlgeschlagenen Jenkins-Projekt mit dem MSBuild-Erstellungsschritt fort.

Das erste Feld im Erstellungsschritt ist "MSBuild-Version". Wenn Sie den Erstellungsschritt vor dem Konfigurieren von MSBuild-Versionen erstellt haben, lautet der Wert hier (Standard).

Jenkins MSBuild build-step, with (default) msbuild configuration selected

Nachdem Sie eine oder mehrere MSBuild-Versionen konfiguriert haben, werden in der Dropdown-Liste die verfügbaren Konfigurationen angezeigt. Wählen Sie die gewünschte aus.

Sie können hier sehen, dass ich jetzt die benannte Konfiguration ausgewählt habe, die der obigen Installation entspricht.

Jenkins MSBuild build-step, with named msbuild configuration selected

78
Damith
Jenkins | Manage Jenkins | Configure System

scrollen Sie zum Abschnitt MSBuild und klicken Sie auf MSBuild-Installationen

definiere den vollständigen Pfad zu msbuild.exe, auf meinem System habe ich 3.5 und v4.0.30319

Hinweis - Geben Sie den Pfad zu 32-Bit-Tools auch auf einem 64-Bit-System an. Andernfalls wird möglicherweise eine Fehlermeldung angezeigt:

Das Erstellen einer Windows Phone-Anwendung mit MSBuild 64-Bit wird nicht unterstützt.

So in Jenkins - es könnte zum Beispiel sein:

Name: Version 3.5

Pfad: C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

Name: Version 4.0

Pfad: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe

13
Pavel Zeman

Ich denke, Sie sollten einen absoluten Pfad für "msbuild.exe" in Ihrer Jenkins-Konfiguration festlegen, zum Beispiel:

C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
6
fmgp

Sie können auch den Pfad, in dem sich die Datei msbuild.exe befindet, zur Umgebungsvariablen PATH des Knotens (oder der Knoten) hinzufügen, auf dem der betreffende Job ausgeführt wird.

1