Creazione di un pacchetto patch

Gli sviluppatori creano un pacchetto di patch generando un file di creazione di patch e usando Msimsp.exe per chiamare la funzione UiCreatePatchPackageEx in Patchwiz.dll. Msimsp.exe e Patchwiz.dll vengono forniti in Windows Installer SDK. Per altre informazioni, vedere Un piccolo esempio di patch di aggiornamento.

Poiché l'applicazione di una patch a un pacchetto di Windows Installer genera l'installazione delle origini originali usando un nuovo file di .msi, il nuovo file di .msi deve rimanere compatibile con il layout dell'origine originale.

Quando si crea un pacchetto di patch, è necessario usare un'immagine di installazione non compressa per creare una patch, ad esempio un'immagine amministrativa o un'immagine di installazione non compressa da un CD-ROM. È anche necessario rispettare le restrizioni seguenti:

  • Non spostare i file da una cartella a un'altra.

  • Non spostare i file da un archivio a un altro.

  • Non modificare l'ordine dei file in un archivio.

  • Non modificare il numero di sequenza dei file esistenti. Il numero di sequenza è il valore specificato nella colonna Sequenza della tabella file.

  • Tutti i nuovi file aggiunti dalla patch devono essere inseriti alla fine della sequenza di file esistente. Il numero di sequenza di qualsiasi nuovo file nell'immagine aggiornata deve essere maggiore del numero maggiore di file esistenti nell'immagine di destinazione.

  • Non modificare le chiavi primarie nella tabella file tra le versioni originali e nuove .msi file.

    Nota

    Il file deve avere la stessa chiave nella tabella file dell'immagine di destinazione e dell'immagine aggiornata. I valori stringa nella colonna File di entrambe le tabelle devono essere identici, incluso il caso.

     

  • Non creare un pacchetto con chiavi tabella file che differiscono solo nel caso, ad esempio, evitare l'esempio di tabella seguente.

    File Componente_ FileName
    readme.txt Comp1 readme.txt
    ReadMe.txt Comp2 readme.txt

     

    Windows Installer può consentire l'esempio precedente di tabella quando Comp1 e Comp2 vengono installati in directory diverse, ma non è possibile usare Msimsp.exe o Patchwiz.dll per generare una patch per il pacchetto. Msimsp.exe e Patchwiz.dll chiamata Makecab.exe, che è senza distinzione tra maiuscole e minuscole e ha esito negativo.

    Quando si usano moduli di tipo merge nell'installazione, assicurarsi che i numeri di sequenza di file e il layout siano conformi alle linee guida precedenti.