Dołączanie pliku Cabinet do instalacji
W tej sekcji opisano dołączanie plików cabinet w instalacjach. Aby uzyskać więcej informacji, zobacz Korzystanie z szafek i skompresowanych źródeł.
Aby dołączyć plik cabinet do pakietu instalacyjnego
- Użyj narzędzia do tworzenia plików CAB, aby skompresować pliki źródłowe do pliku CAB. Zobacz Cabinet Files.
- Plik cabinet musi znajdować się w strumieniu danych wewnątrz pliku .msi lub w osobnym pliku cabinet znajdującym się w katalogu głównym drzewa źródłowego określonego przez tabelę katalogów .
- Ustal, czy źródło ma być typem skompresowanym, czy typem mieszanym, który ma zarówno nieskompresowane, jak i skompresowane pliki. Zobacz skompresowane i nieskompresowane źródła. W zależności od typu obrazu źródłowego ustaw bity flagi skompresowane lub nieskompresowane właściwości podsumowania liczby słów .
- Dodaj rekord do tabeli File dla każdego z plików w szafie. Wprowadź klucz pliku w kolumnie Plik, który dokładnie odpowiada kluczowi pliku w szafce. W kluczach plików jest rozróżniana wielkość liter. Sekwencja instalacji plików w tabeli Plik i archiwum również musi być taka sama. Sekwencja plików jest określana przez numer sekwencji w kolumnie Sekwencja. Aby uzyskać numer sekwencji dla pierwszego pliku w szafie, wykonaj następujące czynności. Znajdź istniejący rekord w tabeli Media o największej wartości w kolumnie DiskID. Pole LastSequence tego rekordu zawiera ostatni numer sekwencji plików używany na nośniku. W tabeli Plik przypisz pierwszy plik nowego katalogu, nadając mu numer sekwencji większy niż ten. Przypisz numery sekwencji do wszystkich pozostałych plików w tej samej kolejności co w pliku cabinet. Aby uzyskać opis pozostałych pól rekordów, zobacz Tabela plików.
- Dodaj rekord do tabeli Media dla szafki. Określ wartość w polu DiskID tego nowego rekordu, której wartość jest większa niż największa wartość DiskID już istniejąca w tabeli. Umieść nazwę szafki w polu Cabinet. Ta nazwa musi być w postaci typu danych Cabinet. Poprzedź nazwę znakiem numeru "#", jeśli gabinet jest strumieniem danych przechowywanym w pliku .msi. Należy pamiętać, że jeśli szafka jest strumieniem danych, w nazwie szafki jest rozróżniana wielkość liter. Jeśli plik wynikowy jest oddzielnym plikiem, nazwa pliku nie jest rozróżniana pod względem wielkości liter.
- Określ największy numer sekwencji plików w nowej szafie, sprawdzając kolumnę Sequence zaktualizowanej tabeli Plik. Wprowadź wartość większą w polu LastSequence nowego rekordu tabeli Media. Aby uzyskać opis pozostałych pól rekordów, zobacz Tabela multimediów.
- Plik cabinet można umieścić w pakiecie instalacyjnym, korzystając z narzędzia takiego jak Msidb.exe lub wykorzystując funkcje bazy danych instalatora . Dodanie szafki z programu przy użyciu funkcji bazy danych wyjaśniono w poniższych czterech krokach.
- Aby dodać szafkę do pakietu instalacyjnego z programu, otwórz widok w tabeli _Streams bazy danych przy użyciu MsiDatabaseOpenView.
- Użyj MsiRecordSetString, aby ustawić kolumnę "Nazwa" w tabeli _Streams na nazwę pojawiającą się w kolumnie Cabinet tabeli Media. Pomiń znak numeru: #.
- Użyj MsiRecordSetStream, aby ustawić kolumnę Dane tabeli _Streams na dane cabinetu.
- Użyj MsiViewModify, aby zaktualizować rekord w tabeli _Streams.
- Aby użyć Msidb.exe, aby dodać plik cabinet Mycab.cab do pakietu instalacyjnego o nazwie Mydatabase.msi, użyj następującego wiersza polecenia: Msidb.exe -d mydatabase.msi -a mycab.cab. W takiej sytuacji kolumna "Cabinet" tabeli "Media" powinna zawierać ciąg: #mycab.cab.