我有一个与 Windows XP 兼容的 Visual Studio C++ MSI 包,我还有另一个与 Windows Vista、7、8 兼容的包。
所以,我有两个 MSI 文件。现在,我想要的是,应用程序将两个 MSI 文件合并到一个 exe 文件中,在安装过程中,应用程序检测操作系统并选择兼容的 MSI 进行安装。XP 应该安装 XP MSI,Win7 应该安装 Win7 MSI。
有没有提供这种功能的应用程序?我怎样才能做到这一点 ?任何的想法 ?
我有一个与 Windows XP 兼容的 Visual Studio C++ MSI 包,我还有另一个与 Windows Vista、7、8 兼容的包。
所以,我有两个 MSI 文件。现在,我想要的是,应用程序将两个 MSI 文件合并到一个 exe 文件中,在安装过程中,应用程序检测操作系统并选择兼容的 MSI 进行安装。XP 应该安装 XP MSI,Win7 应该安装 Win7 MSI。
有没有提供这种功能的应用程序?我怎样才能做到这一点 ?任何的想法 ?
要将两个 MSI 合并到一个包中,您可以使用 Bootstrapped EXE 或 Chained MSI。
链式 MSI:
您将 2 个 MSI 添加到新的 1 个 MSI 中。VersionNT
并在需要的条件下使用属性。Windows XP 的条件将是VersionNT<600
,对于 Windows Vista 及更高版本VersionNT>600
。
引导:
您将 2 个 MSI 添加到一个 Setup.exe 中。尝试http://dotnetinstaller.codeplex.com/。它是免费且易于使用的。或阅读有关Windows Installer Bootstrapping的信息。