从TFS Team Build显示UI

时间:2011-08-03 18:36:17

标签: tfs tfs2010

在我的Team Build中,我必须运行一个显示UI的应用程序。如果我们使用适当的命令行参数运行它,则此应用程序配置为在没有用户输入的情况下运行。

当我尝试在本地运行它时,它运行时没有错误,但是如果我从Team Build运行它,则用户界面永远不会显示,并且该进程只会挂起。我只能想象这是因为TFSBuildServiceHost服务作为特定用户运行。在做了一些研究后,我发现没有作为本地服务帐户运行的服务无法显示用户界面。

考虑到这一点,我更改了我的工作流程,以包含一个调用PsExec的InvokeProcess活动,并使用-i和-s参数运行我的应用程序。这背后的想法是通过添加-s参数,它将能够实际显示用户界面。可悲的是,这没用。如果我添加-h参数(使用其提升的令牌运行可执行文件),我会从Interactive Service Detection收到一个奇怪的弹出窗口,询问我是否要显示尝试发送的消息。

是否有办法始终接受正在发送的邮件? 有谁知道如何运行从Team Build显示UI的应用程序?

2 个答案:

答案 0 :(得分:2)

您需要将构建服务配置为以交互模式运行。打开TFS管理控制台,选择Build Configuration,单击BuildService上的Properties,然后选择Run build service as:Interactive Process。当然,您需要在此期间保持登录该计算机。

答案 1 :(得分:0)

看一下这个主题:How can a Windows service execute a GUI application? 简而言之,您需要使用WTSEnumerateSessions枚举活动会话,找到控制台会话和create the process as that user