我在使用带有 psexec 的 CC.NET 时遇到了一个奇怪的问题。
我本质上是在复制一个构建服务器,除了每个服务器上的几个名称更改。两者都是虚拟机。第一个服务器运行良好,但第二个服务器上几乎相同的项目没有完成 CC.NET 构建。这发生在使用 psexec 命令触发批处理文件的 CC.NET 服务器配置部分之后。
psexec 命令很简单,用于触发一个 exe 文件,这是一个 Ranorex 自动化测试用例。测试用例需要在当前用户的会话(会话 1)中运行,以便 UI 组件可见(这是 Ranorex 约束)。
这是命令:
psexec \\<server name> -i 1 cmd /c C:\Users\build\<path to exe>
操作系统是 Windows 7,Ranorex 是 3.1,CC.NET 和 Psexec 是截至目前的最新版本。
CC.NET 构建日志的输出如下(这只是最后一部分):
<buildresults>
<message level="Error">PsExec v1.98 - Execute processes remotely</message>
<message level="Error">Copyright (C) 2001-2010 Mark Russinovich</message>
<message level="Error">Sysinternals - www.sysinternals.com</message>
</buildresults>
这似乎是 psexec 的输出。获得此日志的唯一方法是,如果我强制 CC.NET 中止构建,则此时会挂起。任何人都知道为什么构建在 psexec 部分挂起?