Wix安装程序:一个有条件决定使用哪个ComponentGroupRef的功能



我的安装程序有一个名为"Tools"的功能

此功能安装的内容取决于客户端运行的SQL Server版本。

我怎么能有一个条件是"如果SQL 2008做ComponentGroupRef ID=SQL2008,否则ComponentGroupRefID=SQL2012"的功能

我正在创建两个属性来保存SQL2008和SQL2012的目录,所以这些属性是我用来做决定的属性。

这很接近,但显示了两次"工具"功能。

<Feature Id="SQL2008Tools" Title="Tools" Level="1" Description="Installs all support UI Tools for SQL 2008">
      <Condition Level="1"><![CDATA[SQL2008BINDIR AND NOT SQL2012BINDIR]]></Condition>
      <ComponentGroupRef Id="Tools2008Component"/>
    </Feature>
    <Feature Id="SQL2012Tools" Title="Tools" Level="1" Description="Installs all support UI Tools for SQL 2012">
      <Condition Level="1"><![CDATA[SQL2012BINDIR]]></Condition>
      <ComponentGroupRef Id="Tools2012Component"/>
    </Feature>   

一如既往-感谢您的帮助!

正如您所发现的,功能的标题不必是唯一的。您有两个具有相同标题的功能,所以它显示为这样。

尝试使用嵌套功能:

<Feature Id="SQLTools" Title="Tools" Level="1" Description="Installs support UI Tools for SQL Server"> 
  <Feature Id="SQL2008Tools" Title="SQL 2008 Tools" Level="1" Description="Installs all support UI Tools for SQL 2008">
    <Condition Level="1"><![CDATA[SQL2008BINDIR AND NOT SQL2012BINDIR]]></Condition>
    <ComponentGroupRef Id="Tools2008Component"/>
  </Feature>
  <Feature Id="SQL2012Tools" Title="SQL 2012 Tools" Level="1" Description="Installs all support UI Tools for SQL 2012">
    <Condition Level="1"><![CDATA[SQL2012BINDIR]]></Condition>
    <ComponentGroupRef Id="Tools2012Component"/>
  </Feature> 
</Feature> 

最新更新