2012-02-29 104 views
0

我的構建模板中有一個InvokeProcess活動。我已經將PsExec.exe放入構建機器的%windir%\ system32 \文件夾中,並將InvokeProcess活動中的FileName指定爲「PsExec.exe」以及參數中的一些參數。但是當構建運行時,它會給出一個錯誤「未找到文件:PsExec」。 我也試過FileNames,比如「%windir%\ system32 \ PsExec.exe」和「%windir%\ system32 \ PsExec.exe」。 當我嘗試在構建機器上運行時鍵入「psexec」,一切都很完美。PsExec With Tfs Build

還有一件事。我應該將PsExec放置在構建控制器正在運行的機器還是構建代理正在運行的位置?

回答

2

如果您在AgentScope活動中調用InvokeProcess,則需要將該文件放在構建代理機器上。否則,它需要在構建控制器機器上。

正如您可能已經猜到的那樣,我們使用.NET Framework的Process類調用您的進程。您的文件名被設置爲ProcessStartInfo的FileName屬性。 InvokeProcess需要該屬性所需的任何標準。

最後一件事,您是否嘗試過使用文字路徑C:\ Windows \ System32 \ PsExec.exe,只是爲了排除任何可能阻止Process對象拾取路徑的奇怪事情?

+1

「如果您在AgentScope活動中調用InvokeProcess,則需要將該文件放在構建代理機器上,否則需要在構建控制器機器上。」 - 這非常有幫助!謝謝! 我無法訪問構建控制器機器,因此我可以將PsExec.exe放入共享文件夾中嗎?它會正常工作嗎? – user1016945 2012-03-01 08:14:14

+0

可能不是,要從共享位置運行可執行文件,計算機將需要啓用加載遠程資源配置,並且默認情況下未啓用該配置。 – 2012-03-01 15:07:26