VS2015 devenv build работает как c? - PullRequest
0 голосов
/ 02 марта 2020

Попытка создать конвейер Jenkins для запуска devenv для создания проектов SSIS. Похоже, что devenv возвращается немедленно, пока сборка выполняется в фоновом режиме. Я делал это ранее с VS2010, и, насколько я помню, devenv не возвращался к консоли до завершения сборки.

Я работаю: devenv mysolution.sln / build "debug | Any Cpu". Командная строка возвращается немедленно. В папках bin или obj проекта нет вывода сборки. Если я просто смотрю папки, в конечном итоге выводятся результаты сборки (несколько секунд).

Есть ли способ гарантировать, что devenv не вернется, пока вся работа не будет завершена? Я перепробовал все параметры, которые кажутся актуальными из справки командной строки. Не так много в Google или SO, похоже, имеет значение.

Есть мысли?

1 Ответ

0 голосов
/ 10 марта 2020

Вариант 1: msbuild

Вероятно, проще всего было бы использовать msbuild. SSIS поддерживается, как указано в этом SO-ответе

msbuild /t:Build /p:Configuration=Debug your_solution.sln

, однако, это не вариант для вас, поэтому

Вариант 2: порождение процесса и ожидание до devenv завершает

один вариант сделать это в Powershell - Get-Process, как указано в в этом ответе SO

для захвата выходов, которые вы можете выбрать /out или / и /log примерно так:

devenv.exe your_solution.sln /build "debug|any cpu" /out "c:\buildlog.txt"

Upd кажется, что эта часть документации объясняет разницу между различными вариантами devenv:

Команды, начинающиеся с devenv, обрабатываются утилитой devenv.com, которая обеспечивает вывод через стандартные системные потоки, такие как stdout и stderr. Утилита определяет соответствующее перенаправление ввода / вывода, когда записывает выходные данные, например, в текстовый файл.

В качестве альтернативы, команды, начинающиеся с devenv.exe, могут использовать те же параметры, но утилита devenv.com обойдены. Использование devenv.exe напрямую предотвращает появление вывода на консоли.

...