2013-04-26 3 views
4

WiX 3.5에서 관리되는 사용자 지정 동작을 64 비트 프로세스로 실행하려고합니다. 관련된 모든 프로젝트는 x64 (지정된 here)로 빌드되도록 구성됩니다. 저의 핵심은 sfxca 버전입니다. 내 빌드 로그에 따르면 x64 버전을 제대로 호출하고 있습니다.WiX 사용자 지정 동작 (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" 

하지만 설치 프로그램을 실행하면, 로그는 여전히 "안녕, 난 당신의 32 비트 타인을 사칭 한 사용자 지정 작업 서버"라고하고, 사용자 지정 작업이 제대로 실행되지 않습니다.

특히 저는 32 비트 버전 대신 Powershell의 64 비트 버전을 실행하려고합니다.

+0

DTF ca는 기본적으로 모든 CPU로 설정됩니다. 기본 훅은 32 비트이지만 CA 프로세스는 64 비트입니다. –

+0

올바른 sfxca 버전을 강제로 지정하기 위해 모든 CPU에서 x64로 변경했습니다. – TheWhitness

+0

나는 왜 그것이 중요할지 모르겠다. sfxca는 모든 것을 시작하고 interop 호출을 마샬링하는 데 사용됩니다. 나는 과거에 이것을하지 않고도 64 비트 코드를 실행했다. –

답변

6

명시 적으로 관리 코드를 64 비트로 컴파일하면 DTF가 사용자 지정 작업을 64 비트 사용자 지정 동작 서버로 올바르게로드합니다. 기본적으로 관리 코드는 32 비트 사용자 지정 동작 서버에 사용자 지정 동작을로드하게하는 "모든 CPU"로 컴파일됩니다.

희망 하시겠습니까?

+0

문제는 내 자신의 어리 석음 이었지만 대답으로 받아 들였습니다. 이것은 대부분의 사람들이이 문제에 걸림돌이되는 문제입니다. 고맙습니다! – TheWhitness

+0

64 비트로 WiX 설치 프로젝트를 컴파일했지만 여전히 32 비트 Action Server를 실행합니다. 64 비트를 어떻게로드 했습니까 ?? – codenamezero