安装x86和amp; x64 VC ++ 10运行时?

时间:2012-12-15 00:13:52

标签: windows-installer installshield visual-c++-2010

我有一个基本MSI项目,其先决条件刚刚从VC ++ 8更改为VC ++ 10 SP1。它是一个32位安装程序,可安装带有几个64位组件的32位程序。 (它使用LSP进行Internet监控,因此它需要32位和64位LSP,以便可以监控这两种应用程序。)因此,需要32位和64位VC ++运行时在64位系统上。

使用VC ++ 8合并模块,由于WinSxs(并排)文件夹,这不是问题。既然MS已经放弃了它并且又将所有运行时放在C:\ Windows \ System32中,那么安装两个VC ++ 10运行时作为先决条件是行不通的,因为它们会相互覆盖。 (大概是因为64位运行时合并模块被重定向到SysWow64,即使它不应该。)

有没有办法安装这两个运行时?我不介意使用独立的vcredist_x64安装程序而不是x64合并模块,但是当我尝试启动时,我得到了“另一个安装过程正在运行”错误。也许可以暂时禁用重定向?

我还考虑过文件夹运行时安装,其中DLL与应用程序位于同一个文件夹中,但由于LSP必须进入系统文件夹,因此我很担心在那里放置另一组运行时。 / p>

1 个答案:

答案 0 :(得分:1)

您不能同时运行2个MSI(您的MSI和vc_redist_x64),这就是您收到错误的原因。 并且您不能在一次安装中使用x86和x64合并模块,因为您的主MSI是x86。
我建议您使用bootstrapped SETUP.EXE和先决条件。您将vc_redist_x64包含在InstallShield中作为先决条件。它会在您的MSI之前安装所有需要的VC Redists。