2012-01-09 3 views
1

インストールを続行する前に、システムに既にインストールされているサービスがあるかどうかを確認する必要があります。 I.私は 条件にカスタムアクションを使用するには?

<Condition Message="Svc must be installed"> 
    Installed OR SVC_V1 
</Condition> 

が追加されている。しかし、それは、SVCがWindowsサービスであるため、カスタムアクションを使用することによってのみ、インストールされている場合、私は確認することができます。この状態でCAをどのように使用できますか?

答えて

1

実際にサービスを検出するためのカスタムアクションは必要ありません。しかし、そのレジストリの読み取り権限が必要とされている

<Property Id="SVC_V1"> 
    <RegistrySearch Id='RegSampleService' 
        Type='raw' 
        Root='HKLM' 
        Name='ImagePath' 
        Key="SYSTEM\CurrentControlSet\services\YourService" /> 
</Property> 

注:サービスはとてもあなたがRegistrySearchを使用することができますHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\の下に登録されます。

+0

サービスが自動に設定されていて、それが存在するだけでなく動作しているかどうかを知りたいので、通常はカスタムアクションを使用しました。 –

+0

真ですが、彼は「サービスが既にインストールされているかどうかを確認する」ように彼に要求しました。 – KMoraz

+0

はい、わかりました。しかし、防御的なプログラマであることは、通常、誰かがこの質問をすると、実際に実行されているサービスに依存していることを意味します。たとえば、mssqlserverが存在しているかどうかを確認することは、インストーラに大きな影響を与えます。 –

2

カスタムアクションは、条件を評価するために使用できるプロパティを設定します。

関連する問題