2016-11-07 2 views
0

Ich versuche, ein WiX-Installationsprogramm mit einer Service-Installation für mein C# -Projekt auszuführen. Es ist das erste Mal, dass ich es versuche und ich verstehe nicht, warum es nicht funktioniert.Ich kann den Dienst mit dem WiX-Installationsprogramm nicht starten

Ich habe einen Serviceinstall gesetzt, aber wenn ich das Setup ausführen, ich bin in dieser Seite blockiert:

enter image description here

Nach ein paar Sekunden habe ich den Fehler:

enter image description here

Ich habe die WiX-Installation von einem Visual Studio Installer mit denselben Parametern erstellt. Es ist der Code:

<Product ... /> 

<Feature Id="ProductFeature" Title="$(var.product)" Level="1"> 
    <ComponentRef Id ="MyService"/> 
</Feature> 

<UIRef Id="WixUI_InstallDir"/> 

<!-- Set install directory --> 
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/> 
</Product> 

<Fragment> 
    <Directory Id="ProgramFilesFolder"> 
     <Directory Id="INSTALLFOLDER" Name="$(var.product)"> 
      <Component Id="MyService" Guid="{GUID-HERE}" KeyPath="yes">   
       <!-- service will need to be installed under Local Service --> 

       <ServiceInstall 
       Id="MyService" 
       Type="ownProcess" 
       Vital="yes" 
       Name="MyService" 
       DisplayName="Service" 
       Description="" 
       Start="auto" 
       Account="NT AUTHORITY\LocalService" 
       ErrorControl="normal"/> 
       <ServiceControl Id="StartDDService" Name="MyService" Start="install" Wait="no" /> 
       <ServiceControl Id="StopDDService" Name="MyService" Stop="both" Wait="yes" Remove="uninstall" /> 
      </Component>   
     </Directory> 
    </Directory> 
</Fragment> 

    <Fragment> 
    <ComponentGroup Id="ProductComponents"> 
     <Component Id="ProductComponent" Guid="{}" Directory="INSTALLFOLDER"> 

     <File Id="MyService.exe" Source="$(var.MyService.TargetDir)\MyService.exe"/> 
     </Component> 
    </ComponentGroup> 
    </Fragment> 

Antwort

3

Der „Startfehler“ Fehler ein Privileg Problem sein könnten, aber die Nachricht ist nur eine Standardmeldung, ob es sich Privileg oder nicht.

Diese Fälle sind in der Regel der Dienst selbst oder eine Abhängigkeit:

  1. Eine fehlende abhängige DLL (oder Abhängigkeit von einer Abhängigkeit usw.) nicht installiert wurde. Dazu gehört das .NET-Framework.

  2. Der Dienst hängt von einer Assembly ab, die auf dem GAC installiert wird, und diese Assemblys werden nicht tatsächlich bei dem Starten von Diensten festgeschrieben, so dass ein Sonderfall einer fehlenden Abhängigkeit ist.

  3. "Fehler beim Start" ist im Grunde, dass der Startcode im Service nicht abgeschlossen wurde. Ein Absturz in Ihrem OnStart-Code könnte dies verursachen. IMO-Dienste sollten immer eine Ablaufverfolgung verfügbar haben, um den Pfad zu verfolgen, und signifikante Werte, um Diagnosen bereitzustellen.

+0

Nach einigen Stunden fand ich endlich die Lösung. Tatsächlich fehlte eine DLL. Ich habe versucht, ein anderes Programm mit dem gleichen Dienst auszuführen und mir fehlte eine DLL für SQL Server. Ich habe die DLL heruntergeladen und jetzt funktioniert es. –

Verwandte Themen