升级SKU时从ARP中删除旧捆绑包

时间:2013-04-29 20:31:34

标签: wix installation burn

我正在部署两张CD,并认为两者都有一个setup.exe软件包。

一张CD将被称为“标准SKU”,setup.exe将安装a.msi和b.msi。

另一张CD将被称为“pro SKU”,setup.exe将安装a.msi,b.msi和c.msi。

创作setup.exe文件时的正确步骤是什么?具体来说,对于某人安装了标准SKU,然后将专业SKU安装在顶部的情况;这会被视为相关的捆绑/升级吗?只需安装两个捆绑包并在ARP中保留两个条目?还有别的吗?

1 个答案:

答案 0 :(得分:1)

我不会尝试在这里使用升级,但相关的捆绑包绝对是开始的地方。在这种情况下,我会让两个捆绑包合适地分享RelatedBundle个ID和Tag。在“标准”捆绑包中添加如下内容:

<Bundle ... Tag='standard'>

   <RelatedBundle Id='PUT-SAME-GUID-HERE' Action='Detect' />

对“pro”Bundle执行相同操作,但Tag适当。

现在,在您的自定义引导程序应用程序中,在OnDetectRelatedBundle()上,如果已安装其中一个Bundles,您将收到回调。该回调还将发送回Tag,以便您知道哪个Bundle存在。您可以将结果显示给用户或任何您喜欢的内容。真正重要的是,在OnPlanRelatedBundle()回调期间,您需要返回相应的RequestState来说明是删除还是离开找到的Bundle。

祝你好运,所有数据都存在,只需要获得正确的回调。