繁体   English   中英

在WiX中安装多个MSi中的功能

[英]Install features in multiple MSi in WiX

我正在为企业产品开发Windows安装程序,它有不同的变体作为单独的MSI产品。 如果已经安装了另一个变体,我们必须检查,我们无法安装产品。 我创建了不同的WIX脚本,用于将它们构建为单独的产品(MSI)。

每个变体都有一个基本框架和多个模块。 我创建了每个模块作为一个功能,并根据构建的变体将它们与基本功能(基本功能必须安装到目前)一起包含在内。

我收到了要求,我们必须允许在任何已安装的变体上安装另一个变体。 例如,我安装了具有2个模块的Product1和基础框架作为三个功能(Base,Mod1,Mod2)。 Product2使用Base和Mod3构建。 现在,当我在安装了Product1的系统中安装Product2时,只应安装Mod3。

我正在使用WIX 3.5。

任何帮助,将不胜感激。

提前致谢。

没有测试,我会说你可以用ComponentSearch做到这一点。 定义此类搜索,搜索产品1的组件并将结果写入变量。 然后,您可以检查变量是否为空,以确定是否已安装产品1。

 <Property Id="EXISTING_PRODUCT">
      <ComponentSearch Id="SearchMyProduct" Guid="{YOUR-OWN-GUID}" Type="file"/>
</Property>

然后,您可以在要素中使用Condition

<Feature Title="Product2">
    <Condition Level="0">EXISTING_PRODUCT <> ""</Condition>
</Feature>

您还可以使用CustomAction根据搜索结果定义所需的值以禁用该Feature (应该是Level的值)。

我没有用这种方式测试,但我认为它应该可行。 请尝试并提供反馈。

附加链接:

http://wix.tramontana.co.hu/tutorial/getting-started/conditional-installation

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM