2012-02-29 103 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