2012-11-17 29 views
2

我知道如何安装.exe文件,安装相应的Windows服务并启动它。使用WiX从现有文件安装服务

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

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

我使用的是WiX 3.6。

谢谢

回答

0

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

看,Windows安装程序(因此,维克斯)能够在两个主要方面的服务工作:

  • 安装新的服务(和unisntall,当然)
  • 配置现有的服务

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

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

于是,我看到了你两个选择,在这种情况下(包括不是你想什么,或者期望,我敢肯定):

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