Service 如何对条件使用自定义操作?

Service 如何对条件使用自定义操作?,service,wix,conditional-statements,Service,Wix,Conditional Statements,在继续安装之前,我需要检查系统中是否已经安装了某些服务。 也就是说,我添加了 已安装或SVC_V1 但我可以检查它是否仅通过使用自定义操作安装,因为Svc是Windows服务。我如何在这种情况下使用CA 自定义操作设置可用于评估条件的属性。实际上,检测服务不需要自定义操作。服务在HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services\下注册,因此您可以使用RegistrySearch: <Property Id="SVC_V1"

在继续安装之前,我需要检查系统中是否已经安装了某些服务。 也就是说,我添加了


已安装或SVC_V1

但我可以检查它是否仅通过使用自定义操作安装,因为Svc是Windows服务。我如何在这种情况下使用CA

自定义操作设置可用于评估条件的属性。

实际上,检测服务不需要自定义操作。服务在
HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services\
下注册,因此您可以使用RegistrySearch

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


但是请注意,注册表读取权限是必需的。

我通常使用自定义操作,因为我们想知道该服务是否设置为自动并运行,不仅要知道它是否存在。如果是,他还请求“检查是否已安装某些服务”。是的,理解。但是作为一个防御性的程序员,通常当有人问这个问题时,这意味着他们依赖于实际运行的服务。例如,检查mssqlserver是否存在和/或是否正在运行会对安装程序产生很大影响。