Pregunta

I've got a Basic MSI project whose prerequisites have just changed from VC++ 8 to VC++ 10 SP1. It's a 32-bit installer that installs a 32-bit program with a couple of 64-bit components. (It uses an LSP for Internet monitoring, so it needs both a 32-bit and a 64-bit LSP so that both kinds of apps can be monitored.) So, both the 32-bit and the 64-bit VC++ runtimes are required on a 64-bit system.

With the VC++ 8 merge modules, this wasn't an issue because of the WinSxs (side-by-side) folders. Now that MS has abandoned that and gone back to putting all the runtimes in C:\Windows\System32, installing both VC++ 10 runtimes as prerequisites doesn't work because they overwrite each other. (Presumably because the 64-bit runtime merge module is getting redirected to SysWow64 even though it shouldn't be.)

Is there a way to get both these runtimes installed? I don't mind using the standalone vcredist_x64 installer instead of the x64 merge modules, but when I tried to launch that I got an "another installation process is running" error. Maybe the redirection can be temporarily disabled?

I also thought about the in-folder runtime install, where the DLLs go in the same folder as your application, but since the LSPs have to go in the system folder I was nervous about putting yet another set of runtimes there.

¿Fue útil?

Solución

You can't run 2 MSIs at the one time (your MSI and vc_redist_x64), that's why you receive error. And you can't use x86 and x64 Merge Modules at one installation, because your main MSI is x86.
I recommend you use bootstrapped SETUP.EXE and prerequisites. You include vc_redist_x64 as prerequisites in InstallShield. It installs all needed VC Redists before your MSI.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top