디렉터리 테이블 사용

디렉터리 테이블은 설치 레이아웃을 지정합니다. CostFinalize 작업 중에 디렉터리가 확인되면 디렉터리 테이블의 키는 디렉터리 경로로 설정된 속성이 됩니다. 설치 관리자는 여러 표준 속성을 시스템 폴더 경로로 설정합니다. 시스템 폴더로 설정된 속성 목록은 속성 참조를 참조하세요.

디렉터리의 대상 위치를 지정하는 가장 좋은 방법은 설치 패키지에서 디렉터리 테이블을 작성하여 이 섹션에 설명된 대로 올바른 위치를 제공하는 것입니다. 설치 시 디렉터리 위치를 변경해야 하는 경우 디렉터리의 대상 위치 변경 섹션도 참조하세요.

다음은 디렉터리 테이블의 예입니다.

디렉터리 Directory_Parent DefaultDir
TARGETDIR SourceDir
EXEDIR TARGETDIR
DLLDIR EXEDIR Bin
DesktopFolder TARGETDIR 데스크톱

 

디렉터리 테이블의 각 행은 원본과 대상 모두에 있는 디렉터리를 나타냅니다. 예를 들어 설치 패키지가 \\applications\source\에 있다고 가정하겠습니다. 첫 번째 행의 Directory_Parent 필드가 Null이므로 이 레코드는 원본과 대상 모두에 대한 루트 디렉터리를 나타냅니다. 원본의 경우 이 디렉터리의 값은 DefaultDir 필드에 의해 지정됩니다. SourceDir 속성은 기본적으로 설치 패키지의 위치로 설정됩니다. 따라서 SourceDir 속성을 재정의하지 않는 한 루트 원본 디렉터리는 \\applications\source\입니다.

첫 번째 레코드의 디렉터리 필드는 루트 대상 디렉터리의 위치를 나타냅니다. 이 경우 TARGETDIR 속성의 값은 이 디렉터리를 나타냅니다. 일반적으로 TARGETDIR 속성의 값은 명령줄 또는 사용자 인터페이스를 통해 설정됩니다. 이 경우 TARGETDIR 속성이 C:\Program Files\Target\으로 설정된다고 가정하겠습니다.

두 번째 레코드의 경우 Directory_Parent 필드는 Null이 아닙니다. 따라서 이 레코드는 원본과 대상 모두에 대한 루트가 아닌 디렉터리를 나타냅니다. 루트가 아닌 원본 디렉터리의 경우 Directory_Parent 필드에 설명된 레코드로 표시된 원본 디렉터리가 부모 디렉터리입니다. 두 번째 레코드의 경우 Directory_Parent 필드는 TARGETDIR입니다. 앞에서 설명한 것처럼 TARGETDIR 레코드로 표시된 원본 디렉터리가 \\applications\source\로 확인되었습니다. 따라서 두 번째 레코드로 표시된 원본 디렉터리는 \\applications\source\App\입니다.

대상 디렉터리에도 유사한 프로세스를 적용할 수 있습니다. 두 번째 레코드에 명시된 대상 디렉터리에 대한 부모 디렉터리의 값은 Directory_Parent 필드에서 확인된 대상 디렉터리입니다. 마찬가지로 Directory_Parent 필드에는 TARGETDIR 값이 포함되어 있습니다. 이는 C:\Program Files\Target\의 대상 디렉터리로 확인되는 첫 번째 레코드를 나타냅니다. 디렉터리 필드에는 EXEDIR이라는 작성자 정의 속성이 포함되어 있습니다. 이 속성이 설정되면 해당 값은 디렉터리의 전체 경로를 제공합니다. 따라서 이 속성이 C:\Data\Common\로 설정된 경우 두 번째 레코드로 표시된 대상 디렉터리의 값은 C:\Data\Common\입니다. 설정되지 않은 경우 대상 디렉터리는 DefaultDir 필드에 지정된 이름을 사용합니다. 이 경우 대상 디렉터리는 C:\Program Files\Target\App\입니다.

세 번째 레코드에도 유사한 프로세스를 적용할 수 있습니다. EXEDIR 및 DLLDIR이 설정되지 않은 경우 대상 디렉터리는 C:\Program Files\Target\App\Bin이고 원본 디렉터리는 \\applications\source\App\Bin\입니다.

네 번째 레코드는 DesktopFolder 속성을 사용합니다. 사용자의 데스크톱 위치가 C:\Winnt\Profiles\User\Desktop\이면 대상 디렉터리는 C:\Winnt\Profiles\User\Desktop\으로 확인됩니다. 원본 디렉터리는 \\applications\source\Desktop\으로 확인됩니다.

디렉터리 테이블의 DefaultDir 열에 사용할 수 있는 추가 구문 기능은 두 가지가 있습니다. 루트가 아닌 원본 디렉터리의 경우 DefaultDir 열에 입력된 마침표(.)는 디렉터리가 하위 디렉터리 없이 부모 디렉터리에 있어야 함을 나타냅니다. 다른 원본 및 대상 디렉터리 경로를 지정하려면 DefaultDir 열의 대상 및 원본 경로를 [targetpath]:[sourcepath]와 같이 콜론으로 구분합니다. 해당 기능을 함께 사용하여 단일 디렉터리의 원본 또는 대상 경로에 수준을 추가할 수 있습니다. 디렉터리 테이블의 예는 다음과 같습니다.

디렉터리 Directory_Parent DefaultDir
TARGETDIR SourceDir
MyAppDir TARGETDIR MyApp
BinDir MyAppDir Bin
Binx86Dir BinDir .:x86
BinAlphaDir BinDir .:Alpha

 

원본 및 대상 경로는 MyAppDir, BinDir, Binx86Dir 및 BinAlphaDir 행에 대해 다음과 같이 확인됩니다.

레코드 대상 경로 원본 경로
MyAppDir: [TARGETDIR]MyApp [SourceDir]MyApp
BinDir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin
Binx86Dir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin\x86
BinAlphaDir: [TARGETDIR]MyApp\Bin [SourceDir]MyApp\Bin\Alpha

 

참고

알파 플랫폼은 Windows Installer에서 지원되지 않습니다.