5

我正在尝试通过 Jenkins 中的 Windows 批处理命令插件执行 devenv.exe,但它继续执行并且无法启动应用程序。

控制台输出:

**In progressConsole Output
Started by user anonymous
Building on master in workspace C:\Program Files (x86)\Jenkins\jobs\TEMP\workspace
[workspace] $ cmd /c call C:\Windows\TEMP\hudson3900292017086958332.bat
C:\Program Files (x86)\Jenkins\jobs\TEMP\workspace>set DEVPATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 
C:\Program Files (x86)\Jenkins\jobs\TEMP\workspace>set PATH=D:\app\nazopay\product\11.2.0\dbhome_1\bin;D:\app\nazopay\product\11.2.0\client_1;C:\Program Files (x86)\Integrity\IntegrityClient10\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\cde\tools;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.6.0_23\bin\;C:\Program Files (x86)\Google\Chrome\Application;C:\MingW;C:\PROGRA~2\INTEGR~1\Toolkit\mksnt;%JAVA_HOME%;,;C:\Program Files\Java\jdk1.6.0_23;,;C:\Program Files\Java\jdk1.6.0_23\bin;%CLASS_PATH%;,;C:\Program Files\Java\jdk1.6.0_23\lib;,;C:\Program Files\Java\jdk1.6.0_23\lib;;C:\Program Files (x86)\M**icrosoft Visual Studio 10.0\Common7\IDE 

C:\Program Files (x86)\Jenkins\jobs\TEMP\workspace>devenv.exe
4

2 回答 2

8

您必须执行devenv.com.

devenv.exe即使给出命令,它也总是试图打开 GUI,但它不能。已将输出定向到标准输出,并且在devenv.comJenkins 上运行良好。

您还必须传递参数。

两者都没有参数devenv.comdevenv.exe只需启动 IDE GUI,这不是您想要的。正确的命令行是

devenv.com projectname.sln /Build Release /Project projectname

首先是您要构建的解决方案的路径。然后/Build标志后面是配置。如果您有多个平台,则必须通过配置和平台组合,例如Release|Win32. 该/Project标志命名要构建的项目(包括所有依赖项)。如果省略,它将在给定配置中构建所有选择构建的项目。

于 2014-02-06T07:57:39.710 回答
2

为什么不使用 msbuild?

这将是您的 Windows 构建脚本的一个很好的起点:

call "%VS100COMNTOOLS%\vsvars32.bat"
msbuild projectname.sln /target:Rebuild /l:FileLogger,Microsoft.Build.Engine;logfile=msbuild.log || goto error
goto end
:error
@echo ERROR: Build failed
exit/b 1
:end
exit/b 0

这样,您还可以捕获可以使用 jenkins 插件之一解析的输出日志。当然,调整VS100COMNTOOLS到你的 MSVS 版本

于 2014-02-06T08:37:22.970 回答