合并模块如何升级?

时间:2009-08-19 02:30:20

标签: windows-installer merge-module

我可以找到关于msi如何升级的大量信息。例如。有关次要升级,小型升级,主要升级及其使用案例和限制的信息。但是,我找不到有关合并模块的升级行为的信息,例如:

  1. 好像msm没有任何东西 指定次要,小或的方式 重大升级。那么它是哪种方式 表现如何?它是否卸载旧版本 版本优先或仅更新更新 文件?
  2. 有没有办法指定 哪个版本可以升级 像msi?
  3. 我可以添加/删除/重命名吗?     新版本的组件?
  4. 如果这个msm的更新版本是 已安装和容器 msi决定安装,是吧 用这个旧版本覆盖 MSM?

2 个答案:

答案 0 :(得分:7)

合并模块可以参与两种升级方案。第一种是安装程序升级时,它会升级.msm文件。这种情况发生在Visual Studio Service Pack中,它们提供了更新的合并模块供您使用。这可能会有问题,因为.msm文件没有文件版本(即使它们有合并模块版本),因此文件版本控制规则不适用。你可能不会问这个案子。

另一种情况是合并模块已合并到将升级的安装程序中。它不再是合并模块,而是其文件和其他记录是消费安装程序的一部分。在这种情况下,合并它的.msi控制升级步骤。两者相互作用,通知您对前三个问题的答案。如果合并模块的更改不遵循次要升级规则,则使用安装程序将无法使用次要升级,并且必须采用主要升级。相应地,如果您想在使用安装程序中使用(或允许)次要升级,则必须注意组件。这可能比.msi更难,因为您无法在合并模块中添加新功能。文件版本控制规则将像在所有Windows Installer安装中一样应用;因此,第四个问题的答案取决于逐个文件,逐个组件而不是模块的整个内容的组答案。

答案 1 :(得分:1)

问题: 我相信我需要知道如何对合并模块进行版本化,如答案中第二个场景中所述。

情况:

我有很多产品都安装了相同的合并模块。

如果一个产品安装了较新版本的合并模块,我不希望旧版本的其他产品覆盖最新的合并模块。

有人可以描述这是否可能,如果可以,怎么办?