2

我们目前正在使用 Release Management 2013(更新 2)来执行我们的部署。

我们遇到了一个问题,其中一个步骤需要在目标机器上执行第 3 方 GUI 应用程序才能执行配置。我们已经有能力自动化 UI,但是它无法从 Release Management 运行,因为它需要是交互式的,当从作为我们的 RMSERVICE 域用户运行的 Microsoft 部署代理服务启动时这是不可能的。

启动 GUI 应用程序是通过我们编写的自定义 .NET 控制台应用程序间接执行的:

发布管理 --> [控制台应用程序] --> [UI 应用程序]

控制台应用程序使用典型的 Process.Start() 启动 UI 应用程序,但是我们遇到了错误:

System.InvalidOperationException: 
Showing a modal dialog box or form when the application is not running in UserInteractive mode is 
not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a 
notification from a service application.

在阅读了许多关于服务和会话的帖子后,我现在理解了这个问题,例如 http://www.codeproject.com/Articles/35773/Subverting-Vista-UAC-in-Both-and-bit-Archite 但是有问题的服务是作为系统帐户运行。

但是我仍然不明白我们想要的是否可能,如果是的话,如何实现它们:

使用同一域用户从服务启动 GUI 应用程序作为交互式进程(并在需要时自动登录)

4

1 回答 1

1

我之前尝试过各种方法来解决此类问题,但我从未找到真正有效的方法。

底线是这不是为了运行交互式进程。

如果你想做一些令人难以置信的复杂和疯狂的事情,你可以在机器上安装一个测试代理,创建一个启动你的应用程序的自动化“测试”,然后让 RM 启动在交互式过程中运行的自动化测试。但那是鲁布戈德堡级别的精神错乱。

于 2014-12-04T15:19:07.930 回答