我是WiX的新手,並且正在嘗試創建一個安裝包含3個Windows服務的應用程序的安裝程序。其中一個服務在虛擬中提供了一個用於調試其他兩個服務的鉤子。我可以使用InstallUtil成功安裝服務,但需要包含其他組件和應用程序的更完整的安裝。使用WiX來安裝具有多個Windows服務的進程
在WXS文件中,組件中有三個ServiceInstall節點和三個ServiceControl節點。這些節點引用應用程序可執行文件中定義的三個服務的名稱。
運行安裝程序成功完成,報告的服務已安裝並啓動。但是,第二個和第三個服務的功能不可用,並且檢查事件日誌會顯示輸入3次虛擬服務的啓動消息。類似的,當停止所有3個服務 - 虛擬關機消息出現3次。看起來WSX文件中的服務聲明實際上安裝了服務之間存在一些故障。
從與該組件的WSX文件的XML如下:
<Component Id="LPMMANAGEMENTSERVICE.EXE"
Guid="36C773C5-EF30-4D8D-B9CC-015EBE906CCB" DiskId="1">
<File Id="LPMMANAGEMENTSERVICE.EXE" Name="LPMManagementService.exe" Source="Projects\LumePress\LumeJetManagement\LPMManagementService\bin\Release\LPMManagementService.exe" />
<ServiceInstall Name="LPMManagementDebug" Type="ownProcess" Start="auto"
ErrorControl="critical" Interactive="no" Account="LocalSystem"
Vital="yes" DisplayName="LPM Management Service Debugger"
Description="This service provides a process startup without starting the key services, allowing a debugger to attached and handle onstart and onstop"
Id="LPM_Management_Service_Debugger_Installer" />
<ServiceInstall Name="LPMServiceListeners" Type="ownProcess" Start="auto"
ErrorControl="critical" Account="LocalSystem" DisplayName="LPM Management Service Listeners"
Id="LPM_MANAGEMENT_SERVICE_LISTENERS_INSTALL" Interactive="no" Vital="yes"
Description="Provides WebAPI and WCF Services for the LPM Architecture" />
<ServiceInstall Name="LPMMonitoring" Type="ownProcess" Start="auto" ErrorControl="critical"
Description="Manages and logs events from the LPM Core perl executable"
DisplayName="LPM Management Service LPM Core and Monitoring" Account="LocalSystem"
Id="LPM_MANAGEMENT_SERVICE_CORE_INSTALL" Interactive="no" Vital="yes">
<ServiceDependency Id="LPMServiceListeners" />
</ServiceInstall>
<ServiceControl Id="LPM_MANAGEMENT_DEBUG_CONTROL" Name="LPMManagementDebug"
Remove="uninstall" Start="install" Stop="both" />
<ServiceControl Id="LPM_MANAGEMENT_SERVICE_LISTENERS_CONTROL" Name="LPMServiceListeners"
Remove="uninstall" Start="install" Stop="both" />
<ServiceControl Id="LPM_MANAGEMENT_SERVICE_CORE_CONTROL" Name="LPMMonitoring"
Remove="uninstall" Start="install" Stop="both" />
</Component>
我發現,涉及到創建多個服務的各種問題,但我找不到任何問題,直接關係到這個場景或類似的足以推斷我做錯了什麼。
希望有人會有一個可能有所幫助的建議。
如果我錯過了某些明顯的東西,很樂意提供更多信息。
我想你應該有一個組件和每個ServiceControl的文件,但你有三個同一個文件的ServiceControl。您是否嘗試爲每個服務創建一個組件和文件,併爲這些組件中的每一個分配一個ServiceControl? –
您是否找到解決方案@ChandyHendrix? – Farinha