Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在使用MSBuild/Web部署项目启动程序,而不是等待它_Msbuild - Fatal编程技术网

正在使用MSBuild/Web部署项目启动程序,而不是等待它

正在使用MSBuild/Web部署项目启动程序,而不是等待它,msbuild,Msbuild,我希望在部署完成后打开某个文件夹上的资源管理器,并使用以下方法进行尝试: <Target Name="AfterBuild"> <Exec Command="..."></Exec> </Target> 但是,一个简单的“explorer\somewhere”会导致构建过程在explorer上阻塞,直到您关闭explorer,构建过程才会完成。在它前面加上start explorer\\where也不会改变这一点 有没有一个简单的方法可以

我希望在部署完成后打开某个文件夹上的资源管理器,并使用以下方法进行尝试:

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

但是,一个简单的“explorer\somewhere”会导致构建过程在explorer上阻塞,直到您关闭explorer,构建过程才会完成。在它前面加上
start explorer\\where
也不会改变这一点


有没有一个简单的方法可以做到这一点?问题是,我们只部署到一个中间阶段,并希望手动完成最后一步,在相关文件夹上打开一个资源管理器是一个不错的选择。如果有必要,Exec命令实际上会调用BAT文件,使用VS.NET 2008,在Server 2008 Standard上。

在DOS shell中,您可以使用cmd/c调用另一个进程,而不必等待它的返回。您可以将其用作生成后事件

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

我最后做的是有一个

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


也就是说,先从另一个Exec元素启动Explorer,然后从copy元素启动Explorer,然后在此元素上添加一个稍短的超时。这意味着VS启动Explorer,2秒后返回

我最后做的是启动预构建事件的powershell进程。它执行命令时不会阻塞构建过程的其余部分

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

好吧,试过CMD/C,看起来没什么区别。启动cscript并使用WScript.shell的“run”也不行。抱歉,没有注意到您的回复CptSkippy。无论如何,它会运行,但不会返回。IE,VS被等待的资源管理器窗口阻止。@MyItchyChin实际上我是在谈论Svend的第一条评论:这似乎不起作用,尽管它看起来应该起作用。我当然没能让它工作@哈萨克语只是一个温柔的音符;最好试着询问一个不太有效的答案。。。轻轻地通常有一些小错误是可以纠正的,或者一些小误会之类的。答案不一定需要删除。如果不想在超时后出错,还应设置ContinueOnError=“true”。如果未在超时内完成,这将终止进程