0

背景: 我使用 Visual Studio 安装项目将 C# 应用程序之一部署到客户端 Windows 服务器。在安装应用程序时,我还需要在服务器中设置计划任务为此,我在设置项目中使用了自定义操作功能。我所做的是创建了一个带有输入字段和“确定”按钮的 Windows 表单,一旦用户输入值并单击“确定”按钮,任务就会被创建。我在. Install_CommitCustom Action

问题 :一切正常,但是当显示创建的窗口时,即使我使用showDialog 方法来显示表单,它也会失去焦点。因此,主设置窗口始终处于活动状态,用户在后台看不到弹出表单(见附图)。但我可以单击弹出窗口并使其激活。我也尝试了SetActiveWindow方法,但到目前为止没有好的结果。

我需要的只是激活弹出窗口直到用户操作(默认showDialog行为)。所以我在这里寻求任何帮助。 在此处输入图像描述

4

1 回答 1

1

如果您想在 MSI 部署期间使用自定义 UI 获取用户输入,最好的方法是创建.wid扩展文件。这是您在 MSI 安装期间看到的 UI 文件类型(您可以在其中选择安装路径等)。尽管 Visual Studio 没有创建这些 UI 文件的功能,但您可以使用 Microsoft 工具来创建这些文件。最好的工具之一是Orac.

创建 UI 文件后,您必须将文件放在下面C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\Deployment\VsdDialogs\1033MSI 从中选择默认 UI 文件

之后,您应该能够选择您的自定义 UI 并在安装周期的任何阶段(安装前、安装、安装后等)注入它。然后,您可以将用户输入到文本字段中的值作为安装程序类的参数传递。然后您可以使用上下文参数读取安装程序类中的值。

string value = Context.Parameters["ParameterName"];
于 2013-09-30T07:56:26.427 回答