是否可以在不创建服务项目的情况下使用WIX通过Windows服务运行EXE

本文关键字:通过 WIX Windows 服务 EXE 运行 情况下 创建 服务项目 是否 | 更新日期: 2023-09-27 17:58:21

我有这个mosquitto.exe,我需要使用WiX作为Windows服务安装。当我创建一个Windows服务项目并通过其启动方法运行EXE时,一切都很好。但是,是否可以只使用ServiceControl和ServiceInstall行运行mosquitto.exe,而不需要单独的Windows服务项目?我试过了,但服务无法启动,尽管它不太好。

 </Component>
  <Component Id="cmp59455E1C37B7879C4BC250DE3D60A2AD" Directory="MyProgramDir" Guid="179B4F4C-912B-4CA1-8F08-5E1B4ADFFD8B" Win64="no">
    <File Id="fil7D28AEF774656849395A2FA20A5C963D" KeyPath="yes" Source="../../../Setups/mosquitto/mosquitto/mosquitto.exe" />
   <ServiceInstall Id="MosquittoSI" Type="ownProcess" Name="Mosquitto" DisplayName="Mosquitto" Description="Mosquitto broker service" Start="auto" Account="LocalSystem"  ErrorControl="normal"/>
 <ServiceControl Id="MosquittoSC" Start="install" Stop="both" Remove="uninstall" Name="Mosquitto" Wait="no" />  
</Component>

我在这里做错了什么吗?还是我真的需要通过使用Windows服务项目创建的另一个exe来启动这个mosquitto.exe?任何帮助都将不胜感激。

是否可以在不创建服务项目的情况下使用WIX通过Windows服务运行EXE

以前从未听说过Mosquitto,但快速查看其项目网站和安装程序(NSIS)后发现,它是一项Windows服务该安装程序只是根据需要运行mosquitto.exe installmosquitto.exe uninstall

一般来说,我建议让第三方安装程序做他们所做的事情——直到被证明是不可靠的。要使用他们的安装程序,您可以创建一个WiX引导程序项目(使用"刻录"包管理器;该项目通常有一个bundle.wxs和bundle根元素)。

可能有命令行参数(标准NSIS或自定义)需要传递给它,比如静默安装。