WIX:使用运行程序和multible dll安装服务

问题描述 投票:0回答:1

我正在使用Wix安装程序,该安装程序应基于同一运行程序安装多个服务。这一些将由跑步者加载的dll。使用sc.exe可以在我的测试系统上正常工作。现在我的问题是,我可以为此使用标准的Wix ServiceInstall吗?我只有一个Runner.exe,而且我不确定如何用XML编写它。还是“自定义操作”是正确的方法?

谢谢!

service wix sc.exe
1个回答
0
投票

ServiceInstall和ServiceControl元素不是每个说的after file元素,但它们是Component元素的子元素。它们以恰好是File元素的组件的键路径为目标。您可以轻松地在单个组件中定义指向同一可执行文件的多个服务。

<Component Id="c1" Guid="dbc1b8dd-14e1-380f-5793-4a746fa0c5c5">
      <File Id="f1" Source="$(var.SourceDir)\TestService.exe" KeyPath="yes" />
      <ServiceInstall Id="si1" Name="TestService1" DisplayName="TestService1 Service" Description="TestService1 Service" ErrorControl="normal" Start="auto" Type="ownProcess" />
      <ServiceControl Id="sc1" Name="TestService1" Start="install" Stop="both" Remove="both" Wait="yes" />
      <ServiceInstall Id="si2" Name="TestService2" DisplayName="TestService2 Service" Description="TestService Service" ErrorControl="normal" Start="auto" Type="ownProcess" />
      <ServiceControl Id="sc2" Name="TestService2" Start="install" Stop="both" Remove="both" Wait="yes" />
    </Component>

要使每个服务的行为不同,您必须在服务中编写代码以访问ServiceBase.ServiceName(可能是OnStart方法中的this.ServiceName)。从这里可以动态加载来自不同程序集的不同类。

© www.soinside.com 2019 - 2024. All rights reserved.