Wix 32-битные COM в 64-битном приложении - PullRequest
1 голос
/ 15 апреля 2020

Я использую Wix для создания установщика для приложения, которое, хотя оно и 64-битное, использует некоторые более старые 32-битные COM. Я обнаружил, что мне нужно пометить компонент как Win64 = "no", чтобы регистрация этого COM была отражена в Wow6432Node.

Однако, если я это сделаю, я больше не смогу установить этот компонент. компонент в том же каталоге, что и остальная часть моего приложения, поскольку я получаю это сообщение об ошибке при сборке:

Light0204: ICE80: этот 32BitComponent MyCom.dll использует 64BitDirectory APPLICATIONFOLDER

Я не хочу установить мои COM в 32-битной папке; Я бы предпочел, чтобы все мои заявления были вместе Однако, если я удаляю маркер Win64 = "no" на компоненте, компонент не регистрируется должным образом, и я не могу его использовать. Итак, могу ли я установить свои 32-битные COM-порты с остальной частью моего 64-битного приложения и при этом сделать так, чтобы Wix выполнял регистрацию, не прибегая к самостоятельной регистрации?

1 Ответ

0 голосов
/ 15 апреля 2020

Типичный способ справиться с этим - создать 32-битный MSI и 64-битный MSI, а затем инкапсулировать их с помощью загрузчика (например, WiX Burn).

В основном я занимаюсь разработкой. NET как правило, я бы просто скомпилировал приложение для 32 бит вместо AnyCPU. AFAIK, имеющий 64-битный процесс, использует 32-битный COM-сервер, это сложно.

Вызов 32-битного кода из 64-битного процесса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...