根据条件安装不同的程序变体

时间:2011-05-13 09:58:12

标签: windows-installer

我正在构建一个MSI软件包,该软件包应安装特定可执行文件的多个版本之一,具体取决于Windows版本(即在Windows Vista中使用新功能的版本,以及自行完成工作的版本)。

可执行文件的名称应该相同,无论安装哪个版本(否则这将是微不足道的,不是吗?)。

使用Windows Installer实现此目的的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

执行此操作的绝对最佳方法是使EXE文件能够检测其自己的操作环境,并根据操作系统提供的内容选择不同的方法,以便只有一个二进制文件可以处理。

这有很多原因:

  • 一个单独的二进制文件几乎就像一个双代码库,因为它必须通过一个完整的,单独的QA为每个版本,它通常更容易调试和修复单个二进制文件
  • 不同的二进制文件可能导致修补和升级问题,这些都很难调试和修复
  • 如果对具有相同名称的不同文件使用相同的安装位置,则安装程序将不会通过Windows安装程序验证。除非您的目标是从Microsoft获得安装认证,否则这通常不是问题
  • 在部署同一文件的不同版本时,MSI很笨重

如果必须部署两个二进制文件,我将使用另一个EXE文件副本创建一个新组件,并使用不同的文件名或相同的文件名安装它,但安装在不同的安装文件夹中。然后,使用Windows安装程序条件,使用文件对组件进行调整,使其与安装互斥。这样可以进行适当的修补和升级。