我有一个基本 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 必须位于系统文件夹中,因此我对在其中放置另一组运行时感到紧张。