我正在部署两张 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 中?还有什么?
我正在部署两张 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 中?还有什么?
我不会尝试在这里使用升级,但相关的捆绑包绝对是开始的地方。在这种情况下,我会让两个 Bundles 共享一个RelatedBundle
id 并Tag
适当地共享它们。将类似以下内容添加到“标准”捆绑包中:
<Bundle ... Tag='standard'>
<RelatedBundle Id='PUT-SAME-GUID-HERE' Action='Detect' />
对“pro”捆绑包执行相同的操作,但要Tag
适当。
现在,在您的自定义引导程序应用程序中,OnDetectRelatedBundle()
如果已经安装了其中一个 Bundle,您将收到回调。该回调还将发回,Tag
因此您将知道存在哪个 Bundle。您可以将结果显示给用户或您喜欢的任何内容。真正重要的部分是,在OnPlanRelatedBundle()
回调期间,您需要返回适当的信息RequestState
来说明是删除还是离开找到的 Bundle。
祝你好运,所有数据都在那里,只是获得正确回调的问题。