我正在使用WiX 3.5创建安装程序,安装Windows服务并将DLL复制到第三方应用程序的bin目录。第三方应用程序还有一系列Windows服务,在安装完成后复制并启动DLL之前,需要停止这些服务。我需要做些什么才能实现这一目标。我已经查找了示例,但只能找到如何启动我正在安装的服务。
***另外,我正在安装的服务需要在特定的用户帐户下运行。我看到如何在WIX中定义服务帐户/密码,但我对使用它犹豫不决,因为它以XML格式存储未加密的密码,我对此有安全顾虑。
答案 0 :(得分:6)
首先,要停止服务,您需要使用ServiceControl元素。
<ServiceControl Id="serviceName" Name="actualServiceName" Stop="both" Start="both" Wait ="yes" />
要回答您的问题,您可以将用户名和密码设置为用户发送给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" />
当然,不需要默认值,也不是真的推荐,但我还是把它放在那里。
答案 1 :(得分:4)
使用<ServiceControl/>
<ServiceControl Id="thirdPartyService" Name="thirdPartyService" Stop="install" Start="install" Wait="yes" />