Condividi tramite


Inclusione di un file CAB in un'installazione

Questa sezione descrive l'inclusione di file CAB nelle installazioni. Per ulteriori informazioni, consultare L'utilizzo di archivi e sorgenti compresse.

Per includere un file CAB in un pacchetto di installazione

  1. Usare uno strumento di creazione di file cabinet per comprimere i file di origine in un file CAB. Vedi File del Cabinet.
  2. Il file cabinet deve trovarsi in un flusso di dati all'interno del file .msi o in un file cabinet separato che si trova nella radice dell'albero di origine specificato dalla Tabella di directory.
  3. Determinare se l'origine deve essere di tipo compresso o di tipo misto che include sia file compressi che non compressi. Vedere Origini compresse e non compresse. A seconda del tipo di immagine di origine, impostare i bit di flag compressi o decompressi della Proprietà Riepilogo Conteggio Parole.
  4. Aggiungere un record alla File table per ciascun file nel cabinet. Immettere una chiave del file nella colonna File che corrisponda esattamente alla chiave del file nell'armadio. Le chiavi del file fanno distinzione tra maiuscole e minuscole. Anche la sequenza di installazione del file nella tabella File e nell'archivio deve essere la stessa. La sequenza di file viene specificata dal numero di sequenza nella colonna Sequenza. Per arrivare al numero di sequenza per il primo file nel cabinet, eseguire le operazioni seguenti. Trovare il record esistente nella tabella Media con il valore massimo nella colonna DiskID. Il campo LastSequence di questo record fornisce l'ultimo numero di sequenza file utilizzato sul supporto. Nella tabella File, assegnare al primo file del nuovo cabinet un numero di sequenza maggiore di questo. Assegnare numeri di sequenza a tutti i file rimanenti nello stesso ordine del file CAB. Per una descrizione dei campi dei record rimanenti, consulta la Tabella file.
  5. Aggiungere un record alla Media table per il cabinet. Specificare un valore nel campo DiskID di questo nuovo record maggiore del valore DiskID più grande già esistente nella tabella. Inserire il nome dell'armadio nel campo Cabinet. Questo nome deve essere nel formato di un tipo di dati Cabinet. Anteporre il nome con un cancelletto "#" se il cabinet è un flusso di dati archiviato nel file .msi. Si noti che se l'armadio è un flusso di dati, il nome è sensibile alle maiuscole e minuscole. Se il cabinet è un file separato, il nome del file non è sensibile alla distinzione tra maiuscole e minuscole.
  6. Determinare il numero di sequenza di file più elevato nel nuovo cabinet controllando la colonna Sequenza della tabella file aggiornata. Immettere un valore maggiore di questo valore nel campo LastSequence del nuovo record della tabella Media. Per una descrizione dei campi record rimanenti, vedere Tabella multimediale.
  7. È possibile archiviare il file CAB nel pacchetto di installazione utilizzando uno strumento come Msidb.exe o utilizzando le funzioni di database dell'installatore. I quattro passaggi seguenti illustrano come aggiungere il cabinet da un programma usando le funzioni di database.
  8. Per aggiungere il file CAB al pacchetto di installazione tramite un programma, aprire una vista nella tabella _Streams del database usando MsiDatabaseOpenView.
  9. Usare MsiRecordSetString per impostare la colonna Name della tabella _Streams sul nome visualizzato nella colonna Cabinet della tabella Media. Omettere il segno di numero: #.
  10. Usare MsiRecordSetStream per impostare la colonna Data della tabella _Streams ai dati del cabinet.
  11. Usare MsiViewModify per aggiornare il record nella tabella _Streams.
  12. Per usare Msidb.exe per aggiungere il file CAB Mycab.cab al pacchetto di installazione denominato Mydatabase.msi, usare la riga di comando seguente: Msidb.exe -d mydatabase.msi -a mycab.cab. In questo caso, la colonna Cabinet della tabella Media deve contenere la stringa #mycab.cab.