캐비닛, 파일 테이블 및 미디어 테이블의 파일 시퀀스 번호 순서 지정
파일 테이블 설치에 대한 모든 원본 파일의 전체 목록을 포함합니다. 파일은 원본 미디어에 개별 파일로 저장하거나 캐비닛 파일 내에서 압축할 수 있습니다. 파일 테이블의 시퀀스 열에 있는 시퀀스 번호는 Media 테이블LastSequence 필드와 함께 파일의 설치 순서와 각 파일이 있는 원본 미디어를 모두 지정합니다. Media 테이블의 각 레코드는 시퀀스 번호가 LastSequence 열에 표시된 값보다 작거나 같고 이전 디스크의 LastSequence 값보다 큰 모든 파일을 포함하는 원본 디스크를 식별합니다.
예를 들어 파일 테이블의 시퀀스 열에 입력된 시퀀스 번호가 92개라고 가정합니다. 이 파일이 상주하는 원본 디스크를 확인하기 위해 설치 관리자는 Media 테이블의 레코드에서 가장 작은 LastSequence 값이 92보다 큰 항목을 확인합니다. DiskId 열은 Media 테이블의 기본 키이며 이 필드는 테이블의 디스크를 고유하게 식별합니다.
Windows Installer 패키지의 파일 테이블에 나열할 수 있는 파일 수에 대한 최대 제한은 32767개 파일입니다. 더 많은 파일이 포함된 Windows Installer 패키지를 만들려면 큰 패키지작성을 참조하세요.
패키지 작성자는 원본 파일을 압축하고 캐비닛 파일에 포함하여 설치 패키지의 크기를 줄일 수 있습니다. 소스 파일 이미지는 압축되거나 압축되지 않거나 두 형식이 혼합될 수 있습니다. 압축 및 압축되지 않은 원본에 대한 자세한 내용은 압축 및 압축되지 않은 원본 참조하세요. 압축된 원본 파일은 캐비닛 파일 내에 저장해야 합니다. 캐비닛 내의 압축 파일에는 자체 내부 시퀀스 번호가 있습니다. 이러한 내부 시퀀스 번호의 값은 파일 테이블 내의 시퀀스 번호 값과 일치할 필요가 없습니다. 그러나 파일 테이블에 지정된 파일의 시퀀스는 캐비닛 내 파일의 실제 시퀀스와 동일해야 합니다. 압축되지 않은 파일의 시퀀스 번호는 고유할 필요가 없습니다. 예를 들어 모든 파일이 압축되지 않고 한 디스크에 있는 경우 모든 파일의 시퀀스 번호는 파일 테이블에 같을 수 있습니다.
미디어 테이블은 설치를 위해 원본 미디어를 구성하는 디스크 집합에 대해 설명합니다. Media 테이블의 첫 번째 항목은 항상 DiskId 필드에 1이 있어야 합니다. 디스크 1의 모든 파일에 디스크 2의 파일 시퀀스 번호보다 작은 파일 테이블 시퀀스 번호가 있고 디스크 2의 모든 시퀀스 번호가 디스크 3보다 작아야 하므로 원본 미디어에 파일을 구성해야 합니다. 이 요구 사항은 압축된 원본과 압축되지 않은 원본을 모두 포함하는 디스크에도 적용됩니다. 예를 들어 설치용 미디어 원본이 두 원본 디스크에 있고 디스크 1에 압축되지 않은 파일과 캐비닛 파일이 모두 포함된 경우 압축되지 않은 파일과 캐비닛의 파일 모두 디스크 2에 저장된 파일의 가장 작은 파일 시퀀스 번호보다 작은 시퀀스 번호가 있어야 합니다. 디스크 1의 모든 파일이 캐비닛 파일에서 압축되는 경우 다음 표와 같이 Media 테이블을 작성할 수 있습니다.
미디어 테이블 (부분)
DiskId | LastSequence | DiskPrompt | 내각 | 볼륨 레이블 |
---|---|---|---|---|
1 | 5 | 1 | mycab.cab | 디스크 1 |
2 | 10 | 2 | 디스크 2 |
디스크 1의 일부 파일이 캐비닛에서 압축되고 일부는 압축되지 않은 경우 Media 테이블은 다음과 같이 작성될 수 있습니다.
미디어 테이블(부분)
DiskId | LastSequence | DiskPrompt | 내각 | 볼륨 레이블 |
---|---|---|---|---|
1 | 5 | 1 | 디스크 1 | |
2 | 10 | 1 | mycab.cab | 디스크 1 |
3 | 15 | 2 | 디스크 2 |
다음 Media 테이블의 작성은 디스크 2에서 디스크 1의 캐비닛 안에 있는 파일들보다 파일 순서 번호가 작은 파일들을 지정하고 있어 올바르지 않습니다.
DiskId | 마지막 시퀀스 | DiskPrompt | 내각 | 볼륨 레이블 |
---|---|---|---|---|
1 | 5 | 1 | 디스크 1 | |
2 | 10 | 2 | 디스크 2 | |
3 | 15 | 1 | mycab.cab | 디스크 1 |
대용량 파일은 둘 이상의 캐비닛 파일로 분할할 수 있습니다. 다음 캐비닛 파일에 걸쳐 있는 하나의 캐비닛 파일에는 15개 이하의 파일이 있을 수 있습니다. 예를 들어 3개의 캐비닛 파일이 있는 경우 첫 번째 캐비닛에는 두 번째 캐비닛 파일에 걸쳐 있는 15개의 파일이 있을 수 있으며, 두 번째 캐비닛에는 세 번째 캐비닛 파일에 걸쳐 있는 15개의 파일이 있을 수 있습니다. 파일 테이블에 여러 캐비닛에 대한 레코드를 추가하는 경우 파일의 첫 번째 부분을 사용하여 시퀀스 열에 입력한 파일 시퀀스 번호를 지정합니다.
파일 및 미디어 테이블은 파일 3개, 캐비닛 2개, 디스크 2개가 있는 경우 다음과 같이 작성할 수 있습니다. 이 예제에서는 c1.cab disk1에 상주하고 c2.cab disk2에 상주합니다. 파일 f2는 두 캐비닛에 걸쳐 있습니다. c1.cab 캐비닛에는 전체 f1 파일과 파일 f2의 첫 번째 부분이 포함됩니다. c2.cab 캐비닛에는 f2의 두 번째 부분과 전체 f3 파일이 포함됩니다.
미디어 테이블 (부분)
DiskId | 마지막 시퀀스 | DiskPrompt | 내각 | 볼륨 레이블 |
---|---|---|---|---|
1 | 5 | 1 | c1.cab | 디스크 1 |
2 | 10 | 2 | c2.cab | 디스크 2 |
파일 테이블(부분)
파일 | 순서 |
---|---|
f1 | 1 |
f2 | 2 |
f3 | 6 |