2013-04-26 3 views
4

Я пытаюсь запустить управляемое настраиваемое действие в WiX 3.5 в виде 64-битного процесса. Все задействованные проекты сконфигурированы для построения в x64 (как указано here). Я понимаю, что ключом к этому является версия sfxca. Согласно моему журналу сборки, он правильно выдает версию x64.WiX Custom Actions в 64-разрядном

"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" 

Но когда я запустить программу установки, журнал до сих пор говорит: «Здравствуйте, я ваша 32bit сервер олицетворенных пользовательских действий,» и настраиваемое действие не работает правильно.

В частности, я пытаюсь запустить 64-разрядную версию Powershell вместо 32-разрядной версии.

+0

По умолчанию DTF ca установлен в любой процессор. Собственный крючок - 32 бит, а процесс CA - 64 бит. –

+0

Я изменил его с любого процессора на x64 специально для принудительной версии sfxca. – TheWhitness

+0

Я не уверен, почему это имеет значение. Sfxca просто используется для запуска всего и маршалирования вызовов interop. Я запустил 64-битный код без необходимости делать это в прошлом. –

ответ

6

Если вы явно скомпилируете управляемый код в 64-разрядный, то DTF правильно загрузит ваше настраиваемое действие в 64-битный пользовательский сервер действий. По умолчанию управляемый код компилируется в «Любой процессор», который приведет к загрузке пользовательского действия в 32-битный пользовательский сервер действий.

Надеюсь, что это поможет!

+0

Я принял это как ответ, хотя на самом деле проблема была в моей собственной глупости - это будет проблемой для большинства людей, спотыкающихся об этом вопросе. Спасибо! – TheWhitness

+0

Я скомпилировал проект установщика WiX в 64-разрядной версии и по-прежнему запускает 32-разрядный сервер действий. Как вы получили его для загрузки 64-битного? – codenamezero

Смежные вопросы