devenv.exe выполняется через задание jenkin, не работает

Я пытаюсь выполнить devenv.exe через плагин пакетной команды Windows в Jenkins, но он продолжает выполняться и не запускает приложение.

Консольный вывод:

**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

person user3168989    schedule 06.02.2014    source источник


Ответы (2)


Вы должны выполнить devenv.com.

devenv.exe всегда пытается открыть графический интерфейс, даже когда даны команды, и не может. devenv.com имеет вывод, направленный на стандартный вывод, и отлично работает с Jenkins.

Вы также должны передавать аргументы.

Без аргументов как devenv.com, так и devenv.exe просто запустите графический интерфейс IDE, а это не то, что вам нужно. Правильная командная строка

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

Во-первых, это путь к решению, которое вы хотите построить. Затем за флагом /Build следует конфигурация. Если у вас несколько платформ, вам необходимо передать комбинацию конфигурации и платформы, например. Release|Win32. Флаг /Project называет проект для сборки (включая все зависимости). Если он опущен, он собирает все проекты, выбранные для сборки в заданной конфигурации.

person Jan Hudec    schedule 06.02.2014

Почему вы не используете 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.

person uncletall    schedule 06.02.2014
comment
В MSVS 8.0 (2005 г.) и MSVS 9.0 (2008 г.) это не работает для проектов C++. Начиная с MSVS 10.0 (2010) так и должно быть. - person Jan Hudec; 08.04.2014
comment
MSBuild не поддерживает некоторые проекты, такие как SSRS и, возможно, SSIS. Первоначально он не поддерживал проект SSDT, но теперь поддерживает. - person Patrick D'Souza; 10.08.2017
comment
И с опытом, который у меня есть сейчас, я бы добавил, что начиная с MSVS 10.0 (2010) это тоже не всегда работает. Просто вызов MSBuild часто будет использовать другую версию, чем та, которая поставляется с Visual Studio, но я также видел некоторые странные сбои при выполнении внешних команд, хотя я считаю, что мы заставили его вызвать правильную версию. devenv.com работает надежнее. - person Jan Hudec; 28.01.2019