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

Installation 在WIX中停止服务并在安装完成时启动,installation,wix,wix3.5,Installation,Wix,Wix3.5,我正在使用WIX3.5创建一个安装程序,安装Windows服务并将DLL复制到第三方应用程序的bin目录。第三方应用程序还有一系列Windows服务,在复制DLL之前需要停止这些服务,并在安装完成后启动这些服务。我需要做些什么来实现这一点。我已经查找了一些示例,但只能找到如何启动正在安装的服务 ***另一方面,我正在安装的服务需要在特定的用户帐户下运行。我知道如何在WIX中定义服务帐户/密码,但我不太愿意使用它,因为它将未加密的密码存储在XML中,我对此存在安全问题。使用 首先,要停止服务,您需

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

***另一方面,我正在安装的服务需要在特定的用户帐户下运行。我知道如何在WIX中定义服务帐户/密码,但我不太愿意使用它,因为它将未加密的密码存储在XML中,我对此存在安全问题。

使用


首先,要停止服务,您需要使用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" />

当然,默认值不是必需的,也不是真正推荐的,但我仍然将它放在那里

<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" />