Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WiX Custom Actions in 64 bit

I am trying to run a managed custom action in WiX 3.5 as a 64 bit process. All projects involved are configured to be built in x64 (as specified here). My understanding is that the key to this is the sfxca version. According to my build log, it is calling the x64 version properly.

"C:\Program Files (x86)\Windows Installer XML v3.5\bin\..\sdk\MakeSfxCA.exe" "C:\Projects\WiXInstaller\MyCustomActions\obj\x64\Debug\MyCustomActions.CA.dll" "C:\Program Files (x86)\Windows Installer XML v3.5\bin\..\sdk\x64\SfxCA.dll" "C:\Projects\WiXInstaller\MyCustomActions\obj\x64\Debug\MyCustomActions.dll" "C:\lib\wix35\Microsoft.Deployment.WindowsInstaller.dll;..\builds\source\OtherDll.dll;C:\Projects\WiXInstaller\MyCustomActions\CustomAction.config"

But when I run the installer, the log still says "Hello, I'm your 32bit Impersonated custom action server," and the custom action doesn't run correctly.

Specifically I am trying to run the 64 bit version of Powershell instead of the 32 bit version.

like image 252
TheWhitness Avatar asked Mar 24 '23 04:03

TheWhitness


1 Answers

If you explicitly compile your managed code to be 64-bit then DTF will correctly load your custom action into the 64-bit custom action server. By default managed code compiles to "Any CPU" which will cause your custom action to be loaded in the 32-bit custom action server.

Hope that helps!

like image 112
Rob Mensching Avatar answered Apr 02 '23 08:04

Rob Mensching