Запуск программы с MSBuild / Web Deployment Project и не ожидание ее - PullRequest
6 голосов
/ 07 августа 2009

Мне бы хотелось, чтобы проводник открывался в определенной папке после развертывания, и я использую следующую попытку:

<Target Name="AfterBuild">
  <Exec Command="..."></Exec>
</Target>

Однако простой «проводник \ где-то» вызывает блокировку процесса сборки в проводнике, и он не завершится, пока вы не закроете проводник. Префикс с start explorer \\somewhere это тоже не меняет.

Есть ли простой способ сделать это? Дело в том, что мы разворачиваемся только на промежуточном этапе и хотим, чтобы последний шаг был сделан вручную, и открытие проводника в соответствующей папке - это очень удобно. Команда Exec фактически вызывает BAT-файл, если это имеет значение, используя VS.NET 2008 в Server 2008 Standard.

Ответы [ 3 ]

5 голосов
/ 29 августа 2009

В итоге я получил

<Exec Command="..." Timeout="2000"></Exec>

То есть, запустите Explorer из другого элемента Exec, отличного от элемента copy, а затем добавьте несколько короткий тайм-аут для этого элемента. Это означает, что VS запускает Explorer и через 2 секунды возвращается.

1 голос
/ 28 февраля 2018

В итоге я запустил процесс powershell для событий перед сборкой. Он выполняет команду, не блокируя остальную часть процесса сборки.

powershell start-process -workingdirectory "..." "cmd " """/k ..."""
0 голосов
/ 07 августа 2009

В оболочке DOS вы можете использовать cmd / c для вызова другого процесса и не ждать его возврата. Вы прекрасно работаете как событие после сборки.

<Target Name="AfterBuild">
  <Exec Command="cmd /c start explorer"></Exec>
</Target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...