2013-04-29 104 views
2

我正在部署两张CD,并且认为两者都会有一个setup.exe软件包。当升级SKU时从ARP中删除旧的软件包

一张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

我不会尝试在这里使用升级,但相关的软件包绝对是开始的地方。在这种情况下,我会让这两个套件适当地共享一个RelatedBundle id和Tag。添加类似以下的“标准”捆绑:

<Bundle ... Tag='standard'> 

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

执行相同的“亲”包,但它Tag适当。

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

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