如何为服务搜索编写条件标记

时间:2015-08-03 13:38:51

标签: visual-studio wix windows-installer

我正在使用WIX为C#服务创建MSI安装程序。 MSI完成3个工作:

a)将解决方案文件从bin复制到特定位置。

b)创建一个服务器写入日志的文件夹。

c)如果以前不存在,请在机器上安装该服务。

我想写一个条件来检查服务器上是否已经安装了该服务。

这是注册表搜索:

<Property Id="MYSERVICE">
  <RegistrySearch Id="SERVICE_CHECK" Root="HKLM" Name="Install" Type="raw" Key="SYSTEM\CurrentControlSet\services\Service"/>
</Property>

这是使用自定义操作安装服务的代码:

<Condition Message="service der already"><![CDATA[Installed OR (MYSERVICE <> Null)]]></Condition>
<InstallExecuteSequence>
  <Custom Action='CMDInstallService' Before='InstallFinalize'></Custom>
</InstallExecuteSequence>

如何编写条件,将检查服务是否存在然后什么也不做,否则安装服务。

2 个答案:

答案 0 :(得分:0)

鉴于服务是产品的一部分,将其分配给自己的功能将处理此问题。

答案 1 :(得分:0)

答案是这样,问题在于语法。

语法应该是

Not SERVICE是一个很好的答案。