2012-01-16 8 views
2

Windowsサービスをインストールするインストーラプロジェクトがあります。このインストーラには、ユーザーがサービス名を指定できるUIダイアログが含まれています。このサービス名はパブリックプロパティに格納されます。インストーラーは指定された名前のサービスを正常に作成しますが、アンインストールすると、インストーラーはサービスを停止し、ユーザーが指定していないデフォルトのサービス名プロパティでサービスを削除しようとします。Wix:ユーザー指定のサービス名でWindowsサービスをインストールする

私のサービスはコードのインストールは、次のようになります。

... 
<Property Id="SERVICE_NAME" Value="Default_Service_Name" /> 
... 
<Component Id="C.service.exe" Guid="..."> 
     <File Id="service.exe" Name="$(var.service.TargetFileName)" KeyPath="yes" Vital="yes" 
       Source="$(var.service.TargetPath)" /> 
     <ServiceInstall Id="MyServiceInstall" DisplayName="[SERVICE_NAME]" Account="[SERVICE_ACCOUNT]" Password="[SERVICE_PASSWORD]" 
         Name="[SERVICE_NAME]" ErrorControl="normal" Start="auto" Type="ownProcess" Vital="yes"> 
     </ServiceInstall> 
     <ServiceControl Id="MyServiceStart" Name="[SERVICE_NAME]" Start="install" Wait="no" /> 
     <ServiceControl Id="MyServiceStop" Name="[SERVICE_NAME]" Stop="both" Wait="yes" /> 
     <ServiceControl Id="MyServiceRemove" Name="[SERVICE_NAME]" Remove="uninstall" Wait="yes" /> 
     </Component> 
... 

は、たぶん私は、ユーザーがサービス名を指定します後SerciceControlテーブルを更新するために、いくつかのCAが必要ですか?

答えて

5

たとえば、レジ​​ストリに保存するなど、アンインストールに必要なユーザー提供のデータをすべて保持する必要があります。 The WiX toolset's "Remember Property" patternを参照してください。

関連する問題