Udostępnij za pośrednictwem


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

  1. Użyj narzędzia do tworzenia plików CAB, aby skompresować pliki źródłowe do pliku CAB. Zobacz Cabinet Files.
  2. 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 .
  3. 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 .
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Aby dodać szafkę do pakietu instalacyjnego z programu, otwórz widok w tabeli _Streams bazy danych przy użyciu MsiDatabaseOpenView.
  9. Użyj MsiRecordSetString, aby ustawić kolumnę "Nazwa" w tabeli _Streams na nazwę pojawiającą się w kolumnie Cabinet tabeli Media. Pomiń znak numeru: #.
  10. Użyj MsiRecordSetStream, aby ustawić kolumnę Dane tabeli _Streams na dane cabinetu.
  11. Użyj MsiViewModify, aby zaktualizować rekord w tabeli _Streams.
  12. 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.