2012-06-13 102 views
3

我正在使用WiX 3.5創建安裝Windows服務並將DLL複製到第三方應用程序的bin目錄的安裝程序。第三方應用程序還有一系列Windows服務,在安裝完成後複製並啓動DLL之前,這些服務也需要停止。我需要做些什麼才能做到這一點。我查找了一些示例,但只能找到如何啓動我正在安裝的服務。在WIX中停止服務並在安裝完成時啓動

***在附註中,我正在安裝的服務需要在特定用戶帳戶下運行。我看到如何在WIX中定義服務帳戶/密碼,但是我很猶豫如何使用它,因爲它以XML格式存儲未加密的密碼,我對此有安全問題。

回答

5

首先,停止你需要使用的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" /> 

當然,默認值是不需要的,並沒有真正推薦,但我仍然把它放在那裏。

4

使用<ServiceControl/>

<ServiceControl Id="thirdPartyService" Name="thirdPartyService" Stop="install" Start="install" Wait="yes" />