2010-02-10 2 views

답변

1

사용자 지정 작업을 실행하기 전에 명령 줄 옵션을 설정 한 WiX의 사용자 지정 동작을 사용하여이 문제를 해결했습니다. 우리가 어떻게하는지 예제가 있습니다 :

<CustomAction Id='RegisterExtensions.SetProperty' Property='QtExecCmdLine' 
    Value='"[INSTALLDIR]RegisterExtensionDotNet20_x86.exe" -i "[INSTALLDIR]LogicNP.EZShellExtensions.dll" "[INSTALLDIR]LogicNP.EZNamespaceExtensions.dll" "[INSTALLDIR]MyNse.dll"'/> 

<CustomAction Id='RegisterExtensions' BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check"/> 

이것은 64 비트에도 적용됩니다.

<Custom Action="RegisterExtensions.SetProperty" Before="RegisterExtensions">(NOT Installed)</Custom> 
<Custom Action='RegisterExtensions' After="InstallFinalize">(NOT Installed)</Custom> 
<Custom Action='RegisterExtensions64.SetProperty' Before='RegisterExtensions64'>(NOT Installed) AND (VersionNT64)</Custom> 
    <Custom Action='RegisterExtensions64' After='RegisterExtensions'>(NOT Installed) AND (VersionNT64)</Custom> 

결과는 당신이 EZNamespaceExtension을 포함 할 필요가있다 : 당신은 윅스 구축 파일로도 등록 절차를 예약해야

<CustomAction Id='RegisterExtensions64.SetProperty' Property='QtExecCmdLine' 
     Value='"[INSTALLDIR]RegisterExtensionDotNet20_x64.exe" -i "[INSTALLDIR]LogicNP.EZShellExtensions.dll" "[INSTALLDIR]LogicNP.EZNamespaceExtensions.dll" "[INSTALLDIR]MyNse.dll"'/> 

<CustomAction Id='RegisterExtensions64' BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check"/> 

: 나는 또한 사용자 지정 작업의 별도의 64 비트 버전이 설치 프로그램의 실행 파일.

+0

도움 주셔서 감사합니다. 방금 더 간단 해지기를 바랐습니다 .-) – Wienczny

+1

Windows에 설치 작업을 할 때마다 우리 모두는 희망을 갖고 있습니다. 그러나 매번 얼굴에 맞았습니다 :-) – tronda

0

작동하려면 네임 스페이스 확장 관련 레지스트리 항목을 추가해야합니다. 이러한 항목 중 많은 부분에 관리자 권한이 필요합니다. 따라서 사용자가 고도를 허용하지 않으면 UAC ON으로 설치할 수 없습니다.

+0

승격 된 권한이 필요하도록 wix를 구성했습니다. 설치 프로그램을 만들려고하는 네임 스페이스 확장은 EZNamespaceExtension을 사용합니다. 자동 등록 기능을 사용할 수 있습니까? 아니면 필요한 모든 레지스트리 키를 찾아야합니까? – Wienczny