2009-08-07 56 views
5

我想探险家在某个文件夹打开,部署发生后,和我用下面来学尝试它:启动一个程序的MSBuild/Web部署项目,而不是等待它

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

但是,一个简单的“explorer \ somewhere”会导致构建过程在资源管理器上阻塞,并且直到关闭资源管理器才会结束。用start explorer \\somewhere作为前缀也不会改变这一点。

有没有简单的方法来做到这一点?事情是,我们只部署到中间阶段,并且希望手动完成最后一步,并且在相关文件夹上打开资源管理器是一件很好的事情。 Exec命令实际上在Server 2008 Standard上使用VS.NET 2008调用BAT文件。

回答

5

我最终什么事做是有

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

也就是说,从不同Exec的元素则复制元素推出Explorer,然后在这个元素上添了几分短超时。这意味着VS启动资源管理器,2秒后返回。

+1

如果您在超时后不想让它出错,则还应该设置ContinueOnError =“true”。 – 2013-05-30 13:00:28

-1

在DOS shell中,您可以使用cmd/c调用另一个进程,而不是等待它返回。您可以在构建后事件中正常工作。

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

那么,试过CMD/C,似乎没有区别。启动cscript并使用WScript.shell的“运行”也是不行的。 – Svend 2009-08-07 19:08:09

+0

它运行还是返回一个错误? – MyItchyChin 2009-08-07 19:32:45

+0

对不起,没有注意到你的答复CptSkippy。无论如何,它运行,但不会返回。 IE,VS被等待的浏览器窗口阻止。 – Svend 2009-08-29 02:18:42

1

我最终做的是开始一个PowerShell过程到预生成事件。它执行该命令而不会阻塞构建过程的其余部分。

powershell start-process -workingdirectory "..." "cmd " """/k ...""" 
相关问题