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 位模拟自定义操作服务器”,并且自定义操作无法正确运行。

具体来说,我正在尝试运行 64 位版本的 Powershell 而不是 32 位版本。

4

1 回答 1

7

如果您将托管代码显式编译为 64 位,则 DTF 将正确地将您的自定义操作加载到 64 位自定义操作服务器中。默认情况下,托管代码编译为“任何 CPU”,这将导致您的自定义操作加载到 32 位自定义操作服务器中。

希望有帮助!

于 2013-05-07T04:12:57.780 回答