2009-08-07 75 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 ...""" 
相關問題