在WIX中停止服务并在安装完成时启动

Tim*_*man 4 installer wix wix3.5

我正在使用WiX 3.5创建安装程序,安装Windows服务并将DLL复制到第三方应用程序的bin目录.第三方应用程序还有一系列Windows服务,在安装完成后复制并启动DLL之前,需要停止这些服务.我需要做些什么才能实现这一目标.我已经查找了示例,但只能找到如何启动我正在安装的服务.

***另外,我正在安装的服务需要在特定的用户帐户下运行.我看到如何在WIX中定义服务帐户/密码,但我对使用它犹豫不决,因为它以XML格式存储未加密的密码,我对此有安全顾虑.

Chr*_*ins 7

首先,要停止服务,您需要使用ServiceControl元素.

<ServiceControl Id="serviceName" Name="actualServiceName" Stop="both" Start="both" Wait ="yes" />
Run Code Online (Sandbox Code Playgroud)

要回答您的问题,您可以将用户名和密码设置为用户发送给MSI的属性,或者用户从GUI输入的属性.

<ServiceInstall Id="serviceName" Name="shortName" DisplayName="longName" Type="ownProcess" Start="auto" ErrorControl="normal" Account="[USER]" Password="[USERPWD]" Description="description" />
<Property Id="USER" Value="defaultValue" />
<Property Id="USERPWD" Value="defaultValue" Hidden="yes" />
Run Code Online (Sandbox Code Playgroud)

当然,不需要默认值,也不是真的推荐,但我仍然把它放在那里.