安装程序与合并模块:区别和建议
更新:2007 年 11 月
Visual Studio 允许您创建两种不同类型的安装程序:Windows Installer (.msi) 和合并模块 (.msm)。Windows Installer 用于在其他计算机上安装应用程序和文件,合并模块用于安装由多个应用程序共享的组件。
这两种类型之间的主要区别在于所针对的用户对象不同。应用程序的最终用户将直接使用的任何内容(可执行文件、文档、HTML 页)都应打包到 Windows Installer 中。仅供开发人员使用的任何内容(DLL、控件、资源)都应打包到合并模块中,然后开发人员可将合并模块打包到分发给最终用户的 Windows Installer 中。
一般情况下,由多个应用程序共享(或有可能共享)的任何组件都应放入其自己的合并模块中。虽然可以将多个组件放入一个合并模块中,但最好为每个组件创建一个合并模块,这样可以避免分发不必要的文件。
合并模块类似于组件的特定版本的快照。为避免版本冲突,应该为组件的每个后续版本创建新的合并模块。
安装程序可包括多个应用程序,以允许您一步安装一套应用程序。在这种情况下,安装程序应包括所含应用程序使用的所有组件的合并模块;如果某个合并模块由多个应用程序使用,那么它只需添加一次。