2016-09-29 6 views
2

특별한 상황이 있습니다. 해결 방법을 찾아야합니다. 필자는 32 비트 응용 프로그램 용 wix 설치 프로그램이 있지만 32/64 비트 Windows 버전과 관계없이 "Program Files"폴더 아래의 고정 된 위치에 있어야하는 Office 문서 파일에 대한 종속성이 있습니다. 잠시만 기다려주십시오. XP 기간 이후로 주변에 있었던 앱의 하위 호환성을 유지하기 때문에 위치를 변경할 수 없습니다. "프로그램 파일 (x86)"폴더에 내 응용 프로그램을 설치하고 "프로그램 파일"에 있어야하는이 파일을 제공해야합니다. 가능하다면 두 설치 관리자로 나누고 싶지 않습니다. 누구든지이 작업을 수행 할 수있는 방법을 알고 있습니까?WIX 32 비트 및 64 비트 프로그램 파일 폴더에 파일을 설치하십시오.

답변

0

디렉터리 정의에 "ProgramFiles64Folder"를 포함시킨 다음 해당 디렉터리를 64 비트 위치로 이동해야하는 구성 요소의 디렉터리로 사용할 수 있어야합니다.

한 구성 요소가 64 비트 시스템의 "C : \ Programs Files"에 설치되고 다른 구성 요소가 "C : \ Programs Files"에 설치되는 동일한 파일을 복제하는 두 구성 요소를 포함해야 할 가능성이 높습니다. 32 비트 컴퓨터에서.

몇 가지 SNMP 관련 파일로 이와 같은 작업을 수행합니다. 무슨 뜻인지의 예 :

<ComponentGroup Id="Files_32" Directory="OfficeProgramFilesFolder"> 
    <Component Id="SomeFile.dll_32" > 
     <Condition>NOT VersionNT64</Condition> 
     <File Id="SomeFile.dll_32" KeyPath="yes" Source="$(var.BinariesDir)\_bin\Win32\SomeFile.dll" /> 
    </Component> 
</ComponentGroup> 
<ComponentGroup Id="Files_64" Directory="OfficeProgramFiles64Folder"> 
    <Component Id="SomeFile.dll_64" Win64="yes"> 
     <Condition>VersionNT64</Condition> 
     <File Id="SomeFile.dll_64" KeyPath="yes" Source="$(var.BinariesDir)\_bin\x64\SomeFile.dll" /> 
    </Component> 
</ComponentGroup> 

이것은로 파일을 설치해야합니다 "C : \ 프로그램 파일"은 32 비트 또는 64 비트 컴퓨터인지.

파일이 64 비트와 32 비트 구성 요소간에 완전히 동일하지만 상호 배타적이기 때문에 괜찮 으면 ICE 경고가 표시됩니다.

WIN64DUALFOLDERS : 32 비트 위치로 리디렉션에서 32 비트 MSI 설치 결과로부터 64 비트 폴더에 설치

1

시도는,이 엔트리의 종류 설치의 로그에 나타나는 ' C : \ Program Files (x86) \ '은 (는) C : \ Program Files \ Wi에서 17 문자를 대체합니다 ......

속성 변경 : TARGETDIR 속성 수정. 현재 값은 'C : \ Program Files \ Wilson \ NewSetup'입니다. 새로운 값 : 'C : \ Program Files (x86) \ Wilson \ NewSetup \'.

32 비트 패키지에는 32 비트 구성 요소 만 포함될 수 있습니다. 문서는 명시 적입니다.

64 비트 프로그램 파일 위치에 배달해야하는 파일이 하나있는 경우 응용 프로그램에서 처음 실행될 때 해당 파일을 복사하는 것이 일반적입니다. 32 비트 앱은 Wow64DisableWow64FsRedirection()을 호출하여 일시적으로 리디렉션을 사용 중지 할 수 있습니다. 당신이 아직 보지 못 한 경우

은 여기 말하기를 :

https://blogs.msdn.microsoft.com/heaths/2008/01/15/different-packages-are-required-for-different-processor-architectures/

및 64 비트 응용 프로그램을 (즉,도 32 비트 구성 요소를 포함 할 수 있습니다) 문제를 해결할 것이다 I 당신이 이미 알고 있다고 의심.