2012-01-20 58 views
0

我正在使用wix編寫安裝程序。作爲安裝的一部分,我正在安裝一個服務並啓動它。但我無法啓動服務。wix服務不啓動,但如果我手動啓動,它的工作原理

這是維克斯代碼:

 <Component Id="Service" Guid="*"> 
    <File Id="MyService.exe" 
      Name="MyService.exe" 
      Source="MyService.exe"/> 

    <ServiceInstall Id="ServiceInstaller" 
        Type="ownProcess" 
        Vital="yes" 
        Name="MyService" 
        DisplayName="Name="MyService.exe" 
        Description="Name="MyService.exe" 
        Start="auto" 
        Account="LocalSystem" 
        ErrorControl="normal" 
        Interactive="no"> 

     <ServiceDependency Id="CcmExec"/> 
    </ServiceInstall> 

    <ServiceControl Id="ServiceController" 
        Start="install" 
        Stop="both" 
        Remove="uninstall" 
        Name="MyService" 
        Wait="no"/> 
    </Component> 
</DirectoryRef> 

通過MSI詳細日誌會後它說錯誤編號1920

但是如果我手動安裝服務(使用命令提示符爲MyService -service)和啓動它使用Services.msc,它工作正常。之後,我的安裝程序能夠卸載,並在重新安裝後再次啓動服務,而無任何問題。

回答

6

您的ServiceControl元素的Name屬性與您的ServiceInstall元素的Name屬性不匹配。您正在創建名爲「MyService」的服務,但嘗試啓動名爲「MyService.exe」的服務。此服務不存在,所以你得到一個1920.

另一個原因可能是你的服務EXE有COM元數據,你還沒有創作這個wxs。

+0

當然,這是一個嚴重的wxs源代碼片段,所以它可能無法真正幫助你。 –

+0

這個名字是一樣的。我很抱歉,在這裏粘貼代碼時,錯字被引入。 – Mark

+0

請讓我知道如果我可以添加更多的東西,可以幫助我解決問題。 – Mark

相關問題