1

I'm using Wix to create an installer for an application that, while it is 64 bit, uses some older 32 bit COMs. I found that I have to mark the component as Win64="no" in order to get the registration of that COM to be reflected in the Wow6432Node.

However, if I do that, I can no longer install that component in the same directory as the rest of my application, as I get this error message when I build:

Light0204: ICE80: This 32BitComponent MyCom.dll uses 64BitDirectory APPLICATIONFOLDER

I don't want to install my COMs in the 32 bit folder; I'd rather keep my application all together. However, if I remove the Win64="no" marker on the component the component doesn't register properly and I can't use it. So, can I install my 32 bit COMs with the rest of my 64 bit application and still have Wix do the registration without resorting to Self Registration?

jpwkeeper
  • 321
  • 2
  • 10
  • That is an error that makes the build fail I guess? [You can suppress such ICE errors](https://stackoverflow.com/questions/7055476/how-do-i-suppress-ice-errors-from-merge-modules). Compiling 32-bit might not be so bad if you can? Installing that file to the 32-bit folder is also fine in my opinion, though I understand that you don't like it. – Stein Åsmul Apr 16 '20 at 02:12

1 Answers1

0

The typical way to handle this is to create a 32bit MSI and a 64bit MSI and then encapsulate them using a bootstrapper (such as WiX Burn).

I tend to do mostly .NET development and typically I would just compile the app for 32bit instead of AnyCPU. AFAIK having a 64bit process consume a 32bit COM server is tricky.

Calling 32bit Code from 64bit Process

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100