简体   繁体   中英

Starting a program with MSBuild/Web Deployment Project and not waiting for it

I would like explorer opened up on a certain folder, after the deployment has happened, and I'm using the following to attemp it:

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

However, a simple "explorer \\somewhere" causes the build process to block on explorer, and it wont finish until you close explorer. Prefixing it with start explorer \\\\somewhere doesn't change that either.

Is there a simple way to do this? Thing is that we only deploy to a intermediate stage, and want the last step done manually, and opening an explorer on the relevant folder is a nicety. The Exec command actually calls a BAT file if that matters, using VS.NET 2008, on Server 2008 Standard.

What I ended up doing was have a

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

That is, launch Explorer from a different Exec element then the copy-element, and then add a somewhat short timeout on this element. This means VS starts up Explorer, and after 2 seconds, returns.

What I ended up doing was starting a powershell process to the pre-build events. It executes the command without blocking the rest of the build process.

powershell start-process -workingdirectory "..." "cmd " """/k ..."""

In the DOS shell you can use cmd /c to call another process and not wait for it's return. You this works fine as a post-build event.

<Target Name="AfterBuild">
  <Exec Command="cmd /c start explorer"></Exec>
</Target>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM