Как использовать пользовательское действие для условия? - PullRequest
1 голос
/ 09 января 2012

Мне нужно проверить, установлен ли какой-либо сервис в системе, прежде чем продолжить установку. То есть Я добавил

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

Но я могу проверить, установлена ​​ли она только с помощью Custom Action, потому что Svc - это служба Windows. Как я могу использовать CA для этого условия?

Ответы [ 2 ]

2 голосов
/ 09 января 2012

Пользовательские действия устанавливают свойства, которые затем можно использовать для оценки условия.

1 голос
/ 09 января 2012

На самом деле вам не нужно настраивать действие для обнаружения вашего сервиса. Службы регистрируются под HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\, поэтому вы можете использовать RegistrySearch :

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

Обратите внимание, что для чтения реестра требуются разрешения.

...