6

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

***附带说明,我正在安装的服务需要在特定用户帐户下运行。我看到了如何在 WIX 中定义服务帐户/密码,但我犹豫要不要使用它,因为它以 XML 格式存储未加密的密码,我对此有安全问题。

4

2 回答 2

8

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

当然,默认值是不需要的,也不是很推荐,但我还是把它放在那里。

于 2012-06-14T08:29:26.353 回答
4

采用<ServiceControl/>

<ServiceControl Id="thirdPartyService" Name="thirdPartyService" Stop="install" Start="install" Wait="yes" />
于 2012-06-13T18:07:13.547 回答