2016-07-23 18 views
0

我有這個mosquitto.exe,我需要使用WiX作爲Windows服務安裝。當我創建一個Windows服務項目並通過其啓動方法運行EXE時,一切正常。但是,是否可以僅使用ServiceControl和ServiceInstall行來運行mosquitto.exe,而不需要單獨的Windows Service項目?我嘗試過,但服務無法啓動,雖然它很好。是否可以使用WIX通過Windows Service運行EXE而不創建服務項目?

</Component> 
    <Component Id="cmp59455E1C37B7879C4BC250DE3D60A2AD" Directory="MyProgramDir" Guid="179B4F4C-912B-4CA1-8F08-5E1B4ADFFD8B" Win64="no"> 
    <File Id="fil7D28AEF774656849395A2FA20A5C963D" KeyPath="yes" Source="../../../Setups/mosquitto/mosquitto/mosquitto.exe" /> 
    <ServiceInstall Id="MosquittoSI" Type="ownProcess" Name="Mosquitto" DisplayName="Mosquitto" Description="Mosquitto broker service" Start="auto" Account="LocalSystem" ErrorControl="normal"/> 
<ServiceControl Id="MosquittoSC" Start="install" Stop="both" Remove="uninstall" Name="Mosquitto" Wait="no" /> 
</Component> 

難道我做錯了什麼在這裏還是我真的需要通過使用一個Windows服務項目創造了另一個exe文件來啓動這個mosquitto.exe?任何幫助將非常感激。

+0

在處理Windows服務時,Windows事件日誌是需要查看的地方。標準日誌會告訴你一項服務無法啓動,並且任何自定義日誌都會告訴你爲什麼。服務常常被設計爲在啓動時進行一些檢查,如果它們失敗了,它們的邏輯表示無法啓動。 –

回答

1

從來沒有聽說過蚊子之前,但快速看看其項目網站和它的installer(NSIS)說,它是一個Windows服務。安裝程序根據需要運行mosquitto.exe installmosquitto.exe uninstall

一般來說,我建議讓第三方安裝程序執行他們的操作 - 直到證明不可靠爲止。要使用他們的安裝程序,您可以創建一個WiX Bootstrapper項目(使用「burn」包管理器;項目通常包含一個bundle.wxs和一個Bundle根元素)。

可能有要傳遞給它的命令行參數(標準NSIS或自定義),如無提示安裝。

+0

我已經通過Burn EXE運行了mosquitto安裝程序MSI。所以它不可能作爲一個EXE項目運行蚊子。你是否建議將任何技術作爲MSI安裝? – mayooran

+0

那麼,他們的成功之路就是他們的NSIS安裝程序。如果你不需要使用它,你可以重新實現它 - 第一遍,完全一樣。這將意味着自定義操作來運行'mosquitto.exe安裝'和'mosquitto.exe卸載'。如果那樣做你,你必須看看這些命令實際上做了什麼。 –

相關問題