user1443098
user1443098

Reputation: 7625

Jenkins unable to find msbuild

getting started with Jenkins. Learning as fast as I can! Trying to setup msbuild in the tools config. i have this:

enter image description here

Then I have a job set up to do a build using an explicit setting and another using the msbuild from above:

enter image description here

When I run this job, the first build works but the second one fails:

D:\var\lib\jenkins\workspace\VisionTest>"c:\program files (x86)\msbuild\14.0\bin\msbuild.exe" TBSM.Vision.Database\TBSM.Vision.Database\TBSM.Vision.Database.sqlproj 
Microsoft (R) Build Engine version 14.0.25420.1
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 2/27/2019 9:05:25 AM.
Project "D:\var\lib\jenkins\workspace\VisionTest\TBSM.Vision.Database\TBSM.Vision.Database\TBSM.Vision.Database.sqlproj" on node 1 (default targets).
GenerateSqlTargetFrameworkMoniker:
Skipping target "GenerateSqlTargetFrameworkMoniker" because all output files are up-to-date with respect to the input files.
CoreCompile:
Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files.
SqlBuild:
Skipping target "SqlBuild" because all output files are up-to-date with respect to the input files.
CopyFilesToOutputDirectory:
  TBSM.Vision.Database -> D:\var\lib\jenkins\workspace\VisionTest\TBSM.Vision.Database\TBSM.Vision.Database\bin\Debug\TBSM.Vision.Database.dll
SqlPrepareForRun:
  TBSM.Vision.Database -> D:\var\lib\jenkins\workspace\VisionTest\TBSM.Vision.Database\TBSM.Vision.Database\bin\Debug\TBSM.Vision.Database.dacpac
Done Building Project "D:\var\lib\jenkins\workspace\VisionTest\TBSM.Vision.Database\TBSM.Vision.Database\TBSM.Vision.Database.sqlproj" (default targets).

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:04.35

D:\var\lib\jenkins\workspace\VisionTest>exit 0 
FATAL: "c:\program files (x86)\msbuild\14.0\bin\msbuild.exe"  doesn't exist
Build step 'Build a Visual Studio project or solution using MSBuild' marked build as failure
Finished: FAILURE

I figure its just me being a noob. Why does Jenkins find msbuild.exe in the first build step but not the second? What do I need to change?

Update: I also tried it like this:

enter image description here

And selected MSBuildAgent in the job config, yet I still get:

FATAL: "c:\program files (x86)\msbuild\14.0\bin\"  doesn't exist
Build step 'Build a Visual Studio project or solution using MSBuild' marked build as failure
Finished: FAILURE

Upvotes: 6

Views: 2076

Answers (2)

Andrew Gray
Andrew Gray

Reputation: 3651

In the Global Tool config you DO need to specify the full path to msbuild.exe and include the file name. Ignore the error message it is a red herring. Note: No double quotes around the path, not required.

MSBuild Config

Using this tool definition in a freestyle job requires an "Build a Visual Studio project or solution using MSBuild" Step, not a Windows Batch step.

In a freestyle job:

  1. Select the version of MSBuild you wish to use from the drop down list like you did.
  2. Enter the WORKSPACE-relative path your project (or preferably solution) file.
  3. In the Command Line arguments enter /t:Clean
  4. Duplicate this step but with the same details but in the second one enter /t:Rebuild into the Command Line arguments

It is recommended that you migrate from Freestyle jobs to pipeline.

Upvotes: 0

user1443098
user1443098

Reputation: 7625

The Jenkins community found my error:

Remove the double quotes surrounding the path

thanks to Lionel Cabasson!!

Upvotes: 2

Related Questions