64비트 Windows Installer 패키지 사용
64비트 Windows Installer 패키지를 만들거나 Windows Installer를 호출하여 64비트 패키지를 설치하는 애플리케이션을 만들 때 다음을 수행합니다.
- Windows Installer 데이터베이스 스키마 200 이상을 사용합니다. 페이지 수 요약 속성을 정수 200으로 설정하여 패키지를 설치하는 데 필요한 설치 관리자의 최소 버전을 버전 2.0로 지정합니다. 이전 Windows Installer 버전은 64비트 패키지를 설치하려는 시도를 거부합니다. Arm64 플랫폼의 64비트 패키지의 경우 Windows Installer 데이터베이스 스키마는 500 이상이어야 합니다.
- 패키지 요약 정보 스트림의 템플릿 요약 속성에 이 패키지가 64비트 패키지임을 나타냅니다. 패키지를 Intel64 프로세서에서 실행할 경우 템플릿 요약 속성의 플랫폼 필드에 “Intel64”를 입력합니다. 패키지를 64비트 확장 프로세서에서 실행할 경우 “x64”를 입력합니다. 패키지를 Arm64 프로세서에서 실행할 경우 “Arm64”를 입력합니다. 패키지는 Intel64 및 x64 플랫폼을 모두 지원하는 것으로 표시할 수 없으며 템플릿 요약 속성 값 “Intel64,x64”는 유효하지 않습니다. 패키지는 32비트 및 64비트 플랫폼을 모두 지원하는 것으로 표시할 수 없으며 템플릿 요약 속성 값 “Intel,x64” 또는 “Intel,Intel64”는 유효하지 않습니다.
- 구성 요소 테이블의 특성 열에서 msidbComponentAttributes64bit를 설정하여 모든 64비트 구성 요소를 식별합니다.
- VersionNT64 속성을 참조하여 64비트 운영 체제의 버전을 확인하는 선택적 조건문을 사용합니다. Windows Installer는 이 속성을 64비트 Windows 버전으로 설정하고 운영 체제가 64비트 Windows가 아닌 경우에는 VersionNT64를 정의되지 않은 상태로 둡니다. 자세한 내용은 조건문에서 속성 사용을 참조하세요.
- Intel64 또는 Msix64 속성을 참조하여 컴퓨터의 숫자 프로세서 수준을 확인하는 선택적 조건문을 사용합니다. Windows Installer는 해당 속성을 컴퓨터의 현재 숫자 프로세서 수준으로 설정하고, 프로세서가 Itanium 기반 프로세서가 아닌 경우 Intel64 속성을 정의되지 않은 상태로 둡니다. 자세한 내용은 조건문에서 속성 사용을 참조하세요.
- AppSearch 테이블 및 AppSearch 작업을 사용하여 기존 64비트 구성 요소의 레지스트리에 대한 선택적 검색을 수행합니다. 기존 64비트 구성 요소를 검색하려면 RegLocator 테이블의 Type 열에 msidbLocatorType64bit 비트를 포함합니다. 자세한 내용은 기존 애플리케이션, 파일, 레지스트리 항목 또는 .ini 파일 항목 속성 검색을 참조하세요.
- 64비트 폴더의 경우 System64Folder 속성, ProgramFiles64Folder 속성 및 CommonFiles64Folder 속성을 참조하고 32비트 폴더의 경우 SystemFolder 속성, ProgramFilesFolder 속성 및 CommonFilesFolder 속성을 참조하여 시스템 폴더의 경로를 가져옵니다.
- 64비트 구성 요소를 참조할 때 애플리케이션이 올바른 GUID를 사용하는지 확인합니다. 특정 구성 요소의 32비트 및 64비트 버전이 있는 경우, 구성 요소 ID GUID가 서로 달라야 합니다.
- 64비트 애플리케이션을 설치할 때 새 환경 변수를 정의해야 하는지 여부를 판단합니다.
- 64비트 ODBC 드라이버 관리자를 설치할 경우 이를 전달하는 구성 요소의 이름은 ODBCDriverManager64여야 합니다. ODBC 드라이버 관리자는 설치 관리자 패키지에서 작성되어야 하며 ODBCDriverManager64라는 이름의 구성 요소를 포함해야 합니다. 필요한 경우 관리자가 설치됩니다.
- 애플리케이션이 실행 파일로 실행되는 32비트 서비스만 호출하는지 확인합니다. 애플리케이션은 DLL에서 실행되는 32비트 서비스를 호출해서는 안 됩니다.
- 애플리케이션이 함께 사용되는 32비트 및 64비트 버전의 구성 요소를 설치하는 경우 애플리케이션이 .ini 파일 정보를 올바르게 공유하는지 확인합니다.
- 애플리케이션이 32비트 이진 파일에는 32비트 패치만을, 64비트 이진 파일에는 64비트 패치만을 적용하는지 확인합니다.
- 32비트 및 64비트 버전 모두에 대한 향후 업그레이드 시나리오를 고려하고 업그레이드 코드를 유지 관리합니다. 자세한 내용은 패치 및 업그레이드를 참조하세요.
- 부트스트래핑 애플리케이션을 사용하여 64비트 Windows Installer 패키지를 설치하는 경우 부트스트래핑 애플리케이션을 64비트 애플리케이션으로 컴파일합니다.
- 특정 구성 요소의 영향을 받는 레지스트리 키에 대해 레지스트리 리플렉션을 사용하지 않도록 설정하려면 구성 요소 테이블의 특성 필드에서 msidbComponentAttributesDisableRegistryReflection 비트를 설정합니다. 이는 동일한 애플리케이션의 32비트 및 64비트 복사본이 함께 사용되도록 하는 데 필요할 수 있습니다. 이 비트가 설정되면 Windows Installer는 구성 요소에서 액세스하는 각 키에 대해 RegDisableReflectionKey 함수를 호출합니다. 이 비트는 Windows Installer 버전 4.0에서 사용할 수 있습니다. 이 비트는 32비트 시스템에서 무시됩니다. 이 비트는 Windows XP 및 Windows 2000의 64비트 버전에서 무시됩니다.
참고
MsiGetComponentPath 함수의 lpPathBuf 매개 변수에서 반환되는 숫자 레지스트리 루트의 값은 32비트 운영 체제와 64비트 운영 체제의 구성 요소를 구분합니다. 자세한 내용은 MsiGetComponentPath 함수를 참조하세요.
관련 항목