【问题标题】:Removing the old bundle from ARP when upgrading SKUs升级 SKU 时从 ARP 中删除旧捆绑包
【发布时间】:2013-04-29 20:31:33
【问题描述】:

我正在部署两张 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,然后在上面安装了pro SKU的场景;这会被视为相关的捆绑包/升级吗?只需安装两个捆绑包并将两个条目都保留在 ARP 中?还有什么?

【问题讨论】:

    标签: wix installation burn


    【解决方案1】:

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

    <Bundle ... Tag='standard'>
    
       <RelatedBundle Id='PUT-SAME-GUID-HERE' Action='Detect' />
    

    对“pro”捆绑包做同样的事情,但Tag 是适当的。

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

    祝你好运,所有数据都在那里,只是获取正确回调的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 2012-08-21
      相关资源
      最近更新 更多