WiX - 如何按功能模块化?
WiX - how to modularise by features?
我想使用 WiX 和 EmbeddedGUI 进行 MSI 安装。我真的想让它高度模块化——即主 MSI 将只包含基本文件(必需的文件),所有其他功能将拆分为单独的 MSI 文件,如果硬盘上没有这些文件,将从互联网上下载,并且只有在我的 EmbeddedGUI 中选择时才会安装。
但我对 WiX 完全陌生,我找不到真正制作该模块的方法? MS Office 和 MS Visual Studio 似乎正在使用这个方案,通过使用它通过互联网下载的模块并在需要时安装它们 - 就像这样:
似乎 Fragments 主要是 "static libraries",而不是 "dynamic libraries",后者在这种情况下会更有用。还有链接机制,但我不确定我是否能够将这些功能捆绑为同一个应用程序("Install/Delete" window 中只有一个条目),因为它似乎完全调用外部 MSI分别(更像是调用 "separate exes" 而不是加载 "dynamic libraries")。
那么,使用 WiX 制作高度模块化的安装包的方法是什么?
使用捆绑(链)。管理捆绑包的 Burn 引擎将仅显示 Add/Remove 程序中的捆绑包,并且可以下载任何不存在的包——例如,使用 MsiPackage/@DownloadURL attribute.
我想使用 WiX 和 EmbeddedGUI 进行 MSI 安装。我真的想让它高度模块化——即主 MSI 将只包含基本文件(必需的文件),所有其他功能将拆分为单独的 MSI 文件,如果硬盘上没有这些文件,将从互联网上下载,并且只有在我的 EmbeddedGUI 中选择时才会安装。
但我对 WiX 完全陌生,我找不到真正制作该模块的方法? MS Office 和 MS Visual Studio 似乎正在使用这个方案,通过使用它通过互联网下载的模块并在需要时安装它们 - 就像这样:
似乎 Fragments 主要是 "static libraries",而不是 "dynamic libraries",后者在这种情况下会更有用。还有链接机制,但我不确定我是否能够将这些功能捆绑为同一个应用程序("Install/Delete" window 中只有一个条目),因为它似乎完全调用外部 MSI分别(更像是调用 "separate exes" 而不是加载 "dynamic libraries")。
那么,使用 WiX 制作高度模块化的安装包的方法是什么?
使用捆绑(链)。管理捆绑包的 Burn 引擎将仅显示 Add/Remove 程序中的捆绑包,并且可以下载任何不存在的包——例如,使用 MsiPackage/@DownloadURL attribute.