Я работаю над профилировщиком .NET (мой вывод проекта — DLL). Я построил 2 библиотеки DLL (написанные на c ++): одна будет загружена процессами x86 .NET, а другая — x64. Я хочу сгенерировать один MSI (целевой шаблон x86), который проверяет, является ли ОС 64-битной или 32-битной. и затем регистрирует правильную DLL, т.е.
- Project output : - the_x64.DLL
- the_x86.DLL
- A single MSI that targets x86 machines : contains the 2 DLLs
- if the OS is 64 bits then both of the DLLs are registered
- if the OS is 32 bits then only the x86 dll is registered
Это возможно?
Платформа MSI не поддерживает смешанные 32/64-битные установщики. Есть хаки для создания «гибридных» MSI, но это официально не поддерживается. Подход, рекомендуемый Microsoft, заключается в том, чтобы создать 2 или более MSI (обычный, 32-битный поставщик, 64-битный поставщик), а затем использовать загрузчик, такой как WiX Burn или InstallShield Suite Installers, чтобы предоставить конечному пользователю возможность единой установки.
Других решений пока нет …