私のアプリケーションのサービスの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"
こんにちはスニル、ご回答いただきありがとうございます。私が見ているように、UACには問題はありません。私はあなたがすでに完璧に働いていると言いました。実際の問題は、サービスコールを使用してこのサービスDLLを登録して、カスタムアクションメソッドから取得したものと同じプロパティ(実行可能パス)を取得する方法です。 –
サービスを作成して登録するコードを含む.batファイルを実行するカスタムアクションを作成して呼び出すことができます。 –