当产品A和B都安装了多个MSI且其中一些MSI是相同的,卸载A或B会影响另一个吗? 安装位置是否重要?
另外,当共享的MSI C在Product B中的版本较高并且B在安装时升级了C时会发生什么? 现在卸载B将删除共享的MSI C,从而破坏Product A。如何优雅地处理此问题而不使用Permanent标志?
当产品A和B都安装了多个MSI且其中一些MSI是相同的,卸载A或B会影响另一个吗? 安装位置是否重要?
另外,当共享的MSI C在Product B中的版本较高并且B在安装时升级了C时会发生什么? 现在卸载B将删除共享的MSI C,从而破坏Product A。如何优雅地处理此问题而不使用Permanent标志?
更新和文件替换:
此时,我建议您仔细阅读这些答案:
假如您使用了Wix,或者愿意使用Wix,我认为处理重叠产品的最佳方式是将您的安装程序分解成Wix段源文件,然后在主要安装程序中根据需要包含它们。这将允许卸载一个产品时保留其他应用程序使用的任何组件。
话虽如此,我不喜欢在我的安装程序中引起太多重叠依赖关系,原因在本文(也在上面列出)中列出:Wix to Install multiple Applications。
为了稳定性,非常重要的是在被太多安装程序使用之前,共享组件必须稳定,因为通常修复错误需要重新编译所有合并到共享组件中的安装程序。简单来说:将一起更改的文件捆绑在一起。
为了解决大量重新编译的需求,您可以选择提供一个独立的支持设置,其中包含一些共享组件。一个或几个这样的"共享组件设置"可能包含一起进行类似的Wix包含的慢速发布计划,然后每个产品单独设置应该能够满足任何部署需求,同时保持可维护性和灵活性之间的平衡。