首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WiX的多个MSi中安装功能

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

Stack Overflow用户
提问于 2013-02-13 21:33:14
回答 1查看 1.1K关注 0票数 1

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

每个变体都有一个基本框架和若干模块。我创建了每个模块作为一个功能,并包括它们与基本功能(基本功能必须安装到目前为止)基于变体构建。

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

我使用的是WIX 3.5。

任何帮助都将不胜感激。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-15 14:45:52

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

代码语言:javascript
复制
 <Property Id="EXISTING_PRODUCT">
      <ComponentSearch Id="SearchMyProduct" Guid="{YOUR-OWN-GUID}" Type="file"/>
</Property>

然后,您可以在该功能中使用Condition

代码语言:javascript
复制
<Feature Title="Product2">
    <Condition Level="0">EXISTING_PRODUCT <> ""</Condition>
</Feature>

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

我还没有测试过这种方法,但我认为它应该可以工作。请试一试,并给出反馈。

其他链接:

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14854756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档