【问题标题】:Install a service from an existing file with WiX使用 WiX 从现有文件安装服务
【发布时间】:2012-11-05 22:51:08
【问题描述】:

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

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

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

我使用的是 WiX 3.6。

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多