0

我想配置我的构建配置,以便在构建步骤 1 中成功构建我的项目后,TeamCity 将运行一个 .cmd 文件。为此,我在构建配置中添加了第二个构建步骤,其中 Runner 类型是命令行,并且命令可执行文件指向我的 .cmd 文件。出于测试目的,我只是让 .cmd 通过一个简单的脚本“START C:\Windows\NOTEPAD.EXE”打开 Windows 记事本应用程序。当我双击 .cmd 文件时它会工作(记事本会立即打开)。问题是构建配置通过这两个步骤成功运行,但似乎 .cmd 从未启动。我检查了构建日志,它说 TeamCity 已成功启动 .cmd 文件。

我尝试更新两个 TeamCity Windows 服务(TeamCity 服务器和 TeamCity Build Agent)以使用本地系统帐户,然后停止并重新启动它们,但它仍然不起作用,.cmd 文件实际上从未启动。

4

2 回答 2

1

添加答案以解释评论中公开的概念

摘自微软文档

  • Windows 通过将每个用户置于单独的会话中来容纳多个登录用户。会话 0 在启动期间创建,并根据需要添加其他会话。服务始终在 Session 0 中运行。

  • 会话 0 专为与交互式用户会话无关的服务和其他应用程序保留。用户应用程序必须在会话 1 或更高版本中运行。

  • 会话 0 不支持用户界面。特别是,会话 0 中运行的进程无法访问图形硬件,也无法直接在监视器上显示任何 UI。

于 2013-10-29T07:14:35.357 回答
0

谢谢你的回复MC。根据您的建议,我找到了另一种方法来完成我的工作,基本上它是通过混合一些不同的工具(如 spexec、.NET Windows 窗体应用程序)一起工作的解决方案。

于 2013-11-03T08:25:47.570 回答