使用WiX从现有文件安装服务

时间:2012-11-17 10:30:41

标签: windows-services wix windows-installer wix3.6

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

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

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

我正在使用WiX 3.6。

由于

1 个答案:

答案 0 :(得分:0)

我认为这个问题的答案是“Windows Installer标准功能无法实现”。另一种选择是像往常一样自定义动作,但这不是我建议你去的路径。

看,Windows Installer(以及WiX)能够以两种主要方式运行服务:

  • 安装新服务(当然是unisntall)
  • 配置现有服务

在后一种选择中,服务应安装在系统上,即应存在于服务管理控制台中。 MSI包只会启动/停止等等。

在WiX创作中指定<ServiceInstall>元素时,它会反映在ServiceInstall MSI table的记录中。此表需要Component作为外键。它检测服务的基础EXE文件的方式是该组件的KeyPath。就我所见,没有办法绕过它。

所以,在这种情况下,我会看到两个选项(不是你想要或期望的,我敢肯定):

  • 以通常的方式安装服务;忘了目标PC上有一个EXE文件并带有MSI包
  • 在继续安装之前确保已安装该服务(如果这是一项关键要求)