rha*_*n33 8 installer windows-installer wix wix3 merge-module
当产品A和B各自安装多个MSI并且某些MSI相同时,卸载A或B会影响另一个吗?安装位置是否重要?
此外,当安装时产品B和B升级C中的常见MSI C版本较高时会发生什么?现在卸载B将删除打破产品A的常见MSI C.如何在不使用永久标志的情况下优雅地处理此问题?
Ste*_*mul 13
这个问题首先想到的是有问题的产品是否按照应有的方式进行分解.
作为一般规则,所有MSI文件都认为它们拥有它们安装的任何内容,并且如果引用计数(使用该组件的产品数量)为零,它们将在卸载时卸载附加到MSI内部组件GUID的所有内容.
这条规则有一些资格:
在MSI包之间创建共享组件的机制通常是:
更新和文件替换:
在这一点上,我会彻底阅读这些答案:
如果您使用Wix,或者您愿意使用Wix,我认为处理重叠产品的最佳方法是将安装程序分解为您在主安装程序中根据需要包含的Wix段源文件.这将允许卸载一个产品以留下其他应用程序使用的任何组件.
话虽如此,我不喜欢在我的安装程序中导致过多的重叠依赖项,原因是本文中列出的原因(也在上面列出):Wix安装多个应用程序.
为了稳定性,共享组件在被太多设置用作错误修复之前是稳定的至关重要,因为一般规则将需要重新编译共享组件被编译或合并到的所有设置.说出来的简单方法:将文件捆绑在一起进行更改.
为了抵消大量重新编译的需要,您可以选择提供由一些共享组件组成的独立支持设置.可能包含Wix的一个或几个这样的" 共享组件设置 "包括在类似的缓慢发布时间表上一起更改,然后每个产品的单独设置应该能够在保持平衡的同时考虑任何部署需求可维护性和灵活性之间.
然后,产品设置应该是经常重新编译的设置,共享模块设置应该设计为最少的重新编译.然后等待改变要求:-).
对我而言,这完全是关于凝聚力和耦合,以及平衡销售,营销和技术需求的难度.
| 归档时间: |
|
| 查看次数: |
3923 次 |
| 最近记录: |