2016-11-07 10 views
0

私のC#プロジェクトのサービスインストールでWiXインストーラを実行しようとしています。私が試してみるのは初めてです。なぜそれがうまくいかないのか分かりません。WiXインストーラでサービスを開始できません

enter image description here

:私はエラーを得た数秒後に

enter image description here

私はServiceInstallを設定しているが、私は、セットアップを実行すると、私はこのページでブロックされています

同じパラメータを使用してVisual Studio InstallerからWiXインストールを作成しました。エラーが特権の問題である可能性があり、「起動に失敗すると、」

<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> 

答えて

3

が、メッセージは、それが特権だかどうかだけでデフォルトのメッセージです:そこコードがあります。

  1. 欠落している依存DLL(または依存などの依存性)がインストールされていません。

    これらのケースは、通常、サービス自体または依存しています。これには.NETフレームワークが含まれます。

  2. サービスは、GACにインストールされているアセンブリによって異なります。これらのアセンブリは、サービスの開始時に実際にコミットされないため、依存関係が欠落している特殊なケースです。

  3. "失敗する"というのは、基本的にサービスの開始コードが完了しなかったことです。 OnStartコードがクラッシュするとこれが発生する可能性があります。 IMOサービスは、経路を追跡するためのトレースと、診断を提供するための重要な値を常に使用可能にする必要があります。

+0

数時間後、私は最終的に解決策を見つけました。実際にはdllが見つかりませんでした。同じサービスを使って別のプログラムを実行しようとしましたが、SQLサーバーのDLLが失われていました。私はdllをダウンロードして、今は動作します。 –

関連する問題