检查系统中已安装的软件的注册表项对于WIX设置

时间:2014-02-18 08:47:51

标签: asp.net-mvc wix prerequisites

我有一个WIX设置。在安装我的设置之前,我想在某些先决条件下使用消息框。 我使用下面的代码来检查特定软件的注册表项。 但它总是提示安装软件或不安装软件。

<Condition Message="This application requires ReportViewer.">
      <![CDATA[ReportViewerV10 OR ReportViewerWow64V10]]>
    </Condition>

    <util:RegistrySearch
     Root="HKLM"
     Key="SOFTWARE\Microsoft\ReportViewer\v10.0"
     Value="Install"
     Variable="ReportViewerV10"
     Win64="yes"
  />
    <util:RegistrySearch
    Root="HKLM"
    Key="SOFTWARE\Wow6432Node\Microsoft\ReportViewer\v10.0"
    Value="Install"
    Variable="ReportViewerWow64V10"
    Win64="yes"/>

任何人都可以指导我在哪里做错了吗? 什么应该是软件的注册表项?

1 个答案:

答案 0 :(得分:1)

根据this documentation,您的注册表搜索参数设置不正确。以下应该会产生更好的结果。

<Property Id="NReportViewerV10">
    <RegistrySearch Id="NetFramework20"
                Root="HKLM"
                Key="SOFTWARE\Microsoft\ReportViewer\v10.0"
                Name="Install"
                Type="raw" />
</Property>
<Property Id="ReportViewerWow64V10">
    <RegistrySearch Id="NetFramework20"
                Root="HKLM"
                Key="SOFTWARE\Wow6432Node\Microsoft\ReportViewer\v10.0"
                Name="Install"
                Type="raw" />
</Property>