【问题标题】:How to write a condition tag for service search如何为服务搜索编写条件标签
【发布时间】:2015-08-03 13:38:51
【问题描述】:

我正在使用 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>

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

【问题讨论】:

    标签: visual-studio wix windows-installer


    【解决方案1】:

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

    【讨论】:

    • 升级元素会检查所安装产品的版本,但这里我尝试安装一个服务作为产品(即 MSI 文件)安装的一部分。
    • 根据您的评论更新答案,建议可能要注意该服务只是您的安装程序的一部分,或者您的安装程序所做的不仅仅是安装服务,这对您的帖子很有帮助这样其他人就不会犯同样的错误。
    • 我明白了。语法应该是
    • 如果您将评论更改为答案,我将删除我的答案。很高兴您解决了您的问题。
    【解决方案2】:

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

    语法应该是

    不服务是最佳答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      相关资源
      最近更新 更多