4

WiX 3.5 でマネージド カスタム アクションを 64 ビット プロセスとして実行しようとしています。関連するすべてのプロジェクトは、x64 でビルドされるように構成されています (ここで指定されているとおり)。私の理解では、これの鍵は sfxca バージョンです。私のビルドログによると、x64 バージョンを正しく呼び出しています。

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

しかし、インストーラーを実行すると、ログに「こんにちは、私はあなたの 32 ビット偽装カスタム アクション サーバーです」と表示され、カスタム アクションが正しく実行されません。

具体的には、32 ビット バージョンではなく 64 ビット バージョンの Powershell を実行しようとしています。

4

1 に答える 1

7

マネージド コードを明示的に 64 ビットにコンパイルすると、DTF はカスタム アクションを 64 ビット カスタム アクション サーバーに正しく読み込みます。デフォルトでは、マネージ コードは「任意の CPU」にコンパイルされ、カスタム アクションが 32 ビット カスタム アクション サーバーに読み込まれます。

それが役立つことを願っています!

于 2013-05-07T04:12:57.780 に答える