我的安装程序有一个名为"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>