2

我知道如何安装 .exe 文件,安装相应的 Windows 服务并启动它。

我不知道如何从用户计算机上的现有文件安装服务。我不想再次复制 .exe,它已经在用户的机器上。

具体来说,我认为我应该使用ServiceInstall,但是如何指定 .exe 文件?

我正在使用 WiX 3.6。

谢谢

4

1 回答 1

0

我认为这个问题的答案是“使用 Windows Installer 标准功能是不可能的”。与往常一样,替代方法是自定义操作,但这不是我建议您采用的路径。

看,Windows Installer(因此,WiX)能够以两种主要方式使用服务:

  • 安装一个新服务(当然是未安装的)
  • 配置现有服务

在后一个选项中,服务应该安装到系统上,即应该存在于服务管理控制台中。MSI 包将启动/停止它,等等。

当您<ServiceInstall>在 WiX 创作中指定一个元素时,它会反映在ServiceInstall MSI 表的记录中。此表需要一个组件作为外键。它检测服务的底层 EXE 文件的方式是KeyPath该组件的。据我所知,没有办法绕过它。

因此,在这种情况下,我为您看到了两种选择(我敢肯定,这两种选择都不是您想要或期望的):

  • 以通常的方式安装服务;忘记目标PC上有一个EXE文件并将其与MSI包一起带来
  • 如果这是一项关键要求,请确保在继续安装之前安装服务
于 2012-11-28T14:55:21.230 回答