dll
  • wix
  • serviceinstall
  • 2011-08-03 16 views 0 likes 
    0

    私のアプリケーションのサービスの1つをインストールするためにWixにカスタムアクションがあります。 WixサービスインストールDLL

    <CustomAction Id="ManagedInstall" 
            Directory='INSTALLDIR' 
            ExeCommand='"[WindowsFolder]\Microsoft.NET\Framework\v2.0.50727\installUtil.exe" /LogToConsole=false ControlService.dll' 
            Impersonate='yes' 
            Return='check'> 
        </CustomAction> 
    

    (UACが上昇して)

    これはXPとWindowsで正常に動作し、7


    <Custom Action='ManagedInstall' After="InstallFinalize"/> 
    

    私たちのラップトップの暗号化と の一部から任意のデスクトップ、離れて仮想マシンまたはラップトップ。

    installUtil.exeコンソールの実行が暗号化によって中断されていることが原因であると考えられます(何らかの理由でシステム間で唯一の違いがあります)。

     <Component Id='ControlServiceDLL' Guid='27C58A4E-E1A9-4b85-B048-F8BBB1BF3C76'> 
          <File Id='ControlService.dll' 
           Name='ControlService.dll' 
           DiskId='1' 
           Source='Data\ControlService.dll' 
           Vital='yes' 
           KeyPath='yes'/> 
    
          <ServiceInstall 
           Id="ControlServiceInstall" 
           Type="shareProcess" 
           Vital='yes' 
           Name='ControlService' 
           DisplayName='Control Service' 
           Description='Control Service Description' 
           Start="demand" 
           ErrorControl='ignore' 
           Interactive="no"> 
          </ServiceInstall> 
    
          <ServiceControl Id="StartService" Remove="uninstall" Name="Control Service" Wait="yes" /> 
         </Component> 
    

    最初は起動できませんでしたので、サービスコントロールの開始/停止コマンドを削除してインストールを確認する必要がありました。はい、問題なくインストールできますが、サービスを手動で開始することはできませんでした。

    観測により、誰かが私を助けてくれるのを助けるかもしれないことがわかりました。私は の下に発見した2種類の方法でサービスのプロパティを比較

    は、それは私の問題に答えることができる誰かに助けて願っています。カスタムアクションを使用することにより

    :\ WINDOWS \ SYSWOW64 \ dllhost.exeの/ PROCESSID:{926E3CF4-B966-4E61-A46B-C3C49F579F7C}

    インストールサービスを使用するなど、サービスのプロパティ実行可能ファイルのパスが C、示し "C:¥Program Files(x86)¥My Test Company¥Services¥ControlService.dll"

    答えて

    -2

    管理特権を持つアプリケーションマニフェストを含めることができ、すべてのイベントは管理者アカウントで作成/呼び出されます。

    msiをお持ちの場合は、dotnetinstallerツールに行くことができます。このツールはmsiをexeに変換し、UACをセットアップに添付します。したがって、ユーザーに管理者権限がない場合、インストーラはプロンプトを表示します。

    +0

    こんにちはスニル、ご回答いただきありがとうございます。私が見ているように、UACには問題はありません。私はあなたがすでに完璧に働いていると言いました。実際の問題は、サービスコールを使用してこのサービスDLLを登録して、カスタムアクションメソッドから取得したものと同じプロパティ(実行可能パス)を取得する方法です。 –

    +1

    サービスを作成して登録するコードを含む.batファイルを実行するカスタムアクションを作成して呼び出すことができます。 –

    1

    あなたが問題としているのは、dllをサービスとしてホストしようとしているということです。 Windowsサービスは実行可能ファイル(exe)です。

    あなたはWiXの3.0以上を使用している場合は、私はに落ちたキーパス落とし穴を含め、ここで説明するように、非カスタムアクションのアプローチで行く: http://blog.tentaclesoftware.com/archive/2009/01/01/21.aspx

    関連する問題