Msbuild通过VS和命令行工作,但是通过Jenkins失败

Koh*_*anz 5 windows msbuild jenkins

我正在尝试构建一个VS .sln,其中包含多个C++ .vcproj.解决方案文件是使用CMake生成的,我已经将这部分工作在Jenkins中(使用CMake builder插件).要构建解决方案文件,我使用的是msbuild.我可以使用Visual Studio和命令行使用以下命令构建解决方案:

C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" /t:Rebuild bin/SonIO.sln
Run Code Online (Sandbox Code Playgroud)

这成功构建(在Jenkins所在的同一台机器上).

但是,我试图在Jenkins中自动化这部分构建,并且构建最终失败并出现一些C1083错误("Cannot open source file: '..\path\to\file.ext': No such file or directory).我已经尝试使用Jenkins msbuild插件并使用在终端中工作的完全相同的命令作为"执行Windows批处理命令"构建步骤,结果相同.

使用Windows批处理命令构建步骤时,我可以在日志中看到正在执行的命令:

C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319 msbuild.exe" /t:Rebuild bin/SonIO.sln
Run Code Online (Sandbox Code Playgroud)

...与从命令行工作的那个完全相同,包括工作目录.

我正在运行Jenkins作为服务,我将服务登录作为我的帐户(具有管理员权限).任何人都知道Jenkins将执行批处理命令的目录是什么?

任何想法为什么我看到Jenkins和命令行之间的这种行为差异?

Eld*_*sis 1

如果不太了解 VS 构建,它看起来主要是一个环境设置。

我的第一个建议是确保在 Jenkins 中将目录更改为运行良好命令的同一目录,然后尝试它。

另外,可能想首先尝试将 Jenkins 作为独立应用程序运行。

作为一项服务,也许允许服务“与桌面交互”。