Захватить код выхода из консольного приложения

В Visual Build Professional (Pro, vbp) есть "Коды успешного завершения", где я могу ввести значения из белого списка...(когда я определяю вызов внешнего.exe)

Когда я создаю вызов к внешнему.exe, как я могу захватить код возврата / код выхода и поместить его в макрос?

По сути, я пытаюсь сделать в Visual Build Pro то, что делает приведенная ниже msbuild.

А именно, захватить значение "ExitCode" для свойства (макрос на языке vbp)... с именем MyExitErrorCode

<Target Name="ExecuteSomeEXETarget">
<Exec Command='"C:\Some.exe"' ContinueOnError='true'>
              <Output TaskParameter="ExitCode" PropertyName="MyExitErrorCode"/>
  </Exec>
  <Message Text="The exit code is $(MyExitErrorCode)"/>
  <Error Text="Error while executing Some EXE" Condition="'$(MyExitErrorCode)' > '0'" />

</Target>

1 ответ

Вы можете сделать "Запустить программу"

В "Команде" укажите путь к вашему exe.

На вкладке "Дополнительно" установите переключатель "Продолжить строительство".

..

Затем вы можете захватить макрос% RUNPROGRAM_EXITCODE%

..

Например, после "Запустить программу" (шаг), создайте "Сообщение журнала" (шаг) и поместите его в

Hello '%RUNPROGRAM_EXITCODE%' !

.......

Не уверен, почему макрос не отображается в списке глобальных макросов.

Теперь, когда я знаю волшебное имя макроса, можно найти документацию

http://www.kinook.com/VisBuildPro/Manual/index.htm?visualbuild5_x.htm

• Состояние сборки действия "Выполнить программу" всегда будет значением из BuildStatusEnum, а не кодом завершения процесса. Код выхода доступен во временном макросе RUNPROGRAM_EXITCODE.

http://www.kinook.com/VisBuildPro/Manual/index.htm?runprogramaction.htm

Действие "Запустить программу" создает шаг для запуска любого внешнего приложения, программы, пакетного файла или командного сценария. Visual Build запускает и отслеживает приложение, захватывает любые выходные данные и записывает их на панель "Вывод" (и файл журнала, если он включен) и завершает работу приложения, если сборка остановлена.

После завершения шага создаются или обновляются следующие временные макросы: RUNPROGRAM_EXITCODE: Если установлен флажок "Ожидание", код завершения процесса будет сохранен в этом макросе. RUNPROGRAM_PROCESSID: Если опция Wait не отмечена, идентификатор процесса запущенного процесса будет сохранен в этом макросе.

Другие вопросы по тегам