Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Msbuild works via VS and command-line, but fails via Jenkins

I am trying to build a VS .sln that has multiple C++ .vcproj's in it. The solution file is generated using CMake and I've got this part working in Jenkins (with the CMake builder plugin). To build the solution file, I am using msbuild. I am able to build the solution using both Visual Studio and from the command line with the following command:

C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" /t:Rebuild bin/SonIO.sln

This builds successfully (on the same machine that Jenkins resides).

However, I am trying to automate this portion of the build in Jenkins and the build ends up failing with a couple of C1083 errors ("Cannot open source file: '..\path\to\file.ext': No such file or directory). I have tried using both the Jenkins msbuild plugin and using the exact same command that works in the terminal as a "Execute Windows batch command" build step, with the same result.

When using the Windows batch command build step, I can see in the log that the command being executed:

C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319 msbuild.exe" /t:Rebuild bin/SonIO.sln

... is exactly the same as the one that works from the command line, including the working directory.

I am running Jenkins as a service and I have the service logon as my account (with administrator privileges). Anyone know what directory Jenkins will execute batch commands out of?

Any ideas why I'm seeing this difference of behavior between Jenkins and the command line?

like image 841
Kohanz Avatar asked Feb 11 '13 14:02

Kohanz


1 Answers

This is as much a workaround as a solution, but I ended up using devenv instead of msbuild and it works fine.

I know that this hints strongly as it being an environmental issue, but since it's not a problem to have VS installed on the build server, I decided to save the time that would be spent in the msbuild rabbit hole.

like image 148
Kohanz Avatar answered Sep 24 '22 15:09

Kohanz