【发布时间】:2012-11-27 03:27:37
【问题描述】:
我有一个在 vs2010 中创建的 .MSI 安装程序项目。此 .MSI 包含许多 *.msm(合并模块文件)。有没有办法在安装过程中根据不同的windows平台(例如:xp、win7、vista..)选择特定的*.msm?
例如,如果安装此.MSI 的目标平台是winXP,我的.MSI 将知道选择哪个.msm,而不是在安装过程中选择所有.msm。
顺便说一句,.MSI 有没有办法访问驻留在 .msm 中的特定 *.dll ?同样,例如,如果 .MSI 项目包含一个 .msm 并且此 .msm 包含许多 *.dll,是否有办法在安装此 .MSI 时选择 .msm 中的特定 *.dll ?
我的主要目的是让我的 .MSI 在安装我的 .MSI 期间知道在不同 Windows 平台下使用什么 .dll/.msm。
【问题讨论】:
-
Merge modules 用于将共享代码、文件、资源、注册表项和设置逻辑作为单个复合文件提供给应用程序。特别是有关 Using Configurable Merge Modules 的文档
-
谢谢马克。 .MSI 在安装过程中选择特定的 *.msm 怎么样?
-
合并模块在安装之前使用单独的合并工具合并到基础包中。结果是一个包含添加信息的新包。就像下面的答案建议将替代方案合并到一个大包的单独功能中,然后使包能够选择要安装的功能。
标签: visual-studio-2010 windows-installer