build .net application in Jenkins using MSBuild
Solution 1
To make the MSBuild plugin work, you need to configure the plugin in the Jenkins management screen.
NOTE: in the newer Jenkins versions you find the MSBuild configuration in the Global Tool Configuration:
Note the "Name" field, where I've called this particular configuration v4.0.30319. You could call it anything you like, but ideally the name will somehow refer to the version.
You'll need to refer to this name later in the Jenkins PROJECT that's failing.
Note: The yellow warning implies that the Path to MSBuild field should be populated with a directory name rather than a file name. In practice you do need to enter the filename here too (ie. msbuild.exe) or the build step will fail.
In the Jenkins project that's failing, go to the MSBuild build step.
The first field in the build step is "MSBuild Version". If you created the build step before configuring any MSBuild versions, the value here will be (default).
After configuring one or more MSBuild versions, the drop down will be populated with the available configurations. Select the one you require.
You can see here that I've now selected the named configuration that matches the installation above.
Solution 2
Jenkins | Manage Jenkins | Configure System
scroll down to the MSBuild section and click MSBuild installations
define the full path to msbuild.exe, on my system I have 3.5 and v4.0.30319
Note - specify the path to 32-bit tools even on a 64-bit system, otherwise you might get an error message:
Building Windows Phone application using MSBuild 64 bit is not supported.
So in Jenkins - it could be for example:
Name: Version 3.5
Path: C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
Name: Version 4.0
Path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe
Solution 3
I think you should set an absolute path for "msbuild.exe" in your Jenkins configuration, for example:
C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
Solution 4
You can also add the path where the msbuild.exe is, to the PATH system environment variable of the node (or nodes) that is running that specific job.
Bijoy K Jose
Someone who assures finest customer experience and best in class performance in digital transformation initiatives with his tools, techniques and expertise. Digital Performance Assurance Digital Value Chain Assurance Digital Customer Experience Assurance Digital Agility Assurance https://dzone.com/articles/embrace-digital-assurance-practices-in-devops-cycl
Updated on December 07, 2020Comments
-
Bijoy K Jose over 3 years
I have a .net application built on .net framework 3.5, I am trying to build this application on Jenkins CI server. I've added MSBuild plugin and and have added path to the .exe file of 2.0, 3.5 and 4.0 versions of MSBuild. But my building processes are failing by showing the below error message.
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
Could anyone plz help me out..??