Riduzione delle dimensioni delle patch

A partire da Windows Installer versione 3.0, gli autori di patch possono usare la baseline del prodotto memorizzata nella cache dal programma di installazione per eseguire più facilmente applicazioni di servizio con patch differenziali più piccole. In molti casi, una patch delta che fornisce informazioni di manutenzione a un'applicazione può essere significativamente inferiore a un pacchetto di patch o installazione full-file che fornisce le stesse informazioni.

Windows Installer 2.0: Non supportato. A partire da Windows Installer 3.0, il programma di installazione salva in modo selettivo le informazioni di base sui file quando vengono aggiornati.

Windows Installer offre tre metodi per l'aggiornamento e la manutenzione delle applicazioni: piccoli aggiornamenti, aggiornamentisecondari e aggiornamenti principali. Un piccolo aggiornamento è noto anche come aggiornamento di correzione rapida (QFE) e un aggiornamento secondario viene definito anche un aggiornamento del Service Pack (SP). Un tipico aggiornamento principale rimuove un'applicazione precedente e installa una nuova applicazione. Windows Installer può fornire informazioni di manutenzione alle applicazioni come pacchetto di installazione (file .msi) o come pacchetto patch (file con estensione msp).

Un pacchetto di patch di Windows Installer che fornisce informazioni di manutenzione per un piccolo aggiornamento o un aggiornamento secondario è in genere molto più piccolo del pacchetto di installazione equivalente che fornisce le stesse informazioni di manutenzione. È consigliabile usare pacchetti di patch per la distribuzione di aggiornamenti di piccole e secondarie. È consigliabile usare un pacchetto di installazione per la distribuzione di un aggiornamento principale.

Le patch di Windows Installer (file con estensione msp) possono essere generate da file completi o da differenze di file (denominate anche delta file). Una patch di Windows Installer generata da delta file può essere molto più piccola rispetto alla patch full-file equivalente. Tutte le versioni di Windows Installer possono usare sia patch full-file che patch delta.

A partire da Windows Installer versione 3.0, il programma di installazione salva in modo selettivo le informazioni di base sui file quando vengono aggiornati. Le informazioni sull'applicazione di base originale (versione RTM) e l'aggiornamento secondario più recente (Service Pack) vengono salvati in una posizione privata quando l'applicazione viene installata o riceve un aggiornamento secondario.

Il programma di installazione esegue le operazioni seguenti per ridurre al minimo le dimensioni della cache di base:

  • Non vengono mantenute più di due baseline per ogni applicazione: una baseline del file come originariamente rilasciato (RTM) e una baseline del file in corrispondenza dell'aggiornamento secondario più recente (Service Pack).
  • Un file non viene aggiunto alla cache fino a quando non viene eseguito l'applicazione di patch. La cache di base è copy-on-write.
  • Se l'applicazione non è mai stata aggiornata, non sono presenti file nella cache di base.
  • Quando l'ultima manutenzione dell'applicazione era un aggiornamento secondario (service pack) l'applicazione è a livello di baseline e al massimo due copie di un file possono essere presenti nel computer. Una copia del file si trova nella directory di destinazione dell'installazione. L'altra copia può essere nella cache della baseline RTM.
  • Quando l'ultima manutenzione dell'applicazione era un piccolo aggiornamento (QFE) l'applicazione non è a livello di base e al massimo tre copie di un file possono essere presenti nel computer. La prima copia del file si trova nella directory di destinazione dell'installazione. La seconda copia del file si trova nella cache della baseline RTM. L'ultima copia del file si trova nella cache di baseline più recente.
  • La cache di base dell'applicazione viene rimossa quando il prodotto viene disinstallato.

A partire da Windows Installer versione 3.0, il programma di installazione può usare la cache di base quando le patch vengono applicate all'applicazione. Le informazioni di base possono essere usate per applicare una patch delta o per ripristinare un file in una versione precedente durante una disinstallazione di patch. Ciò può consentire agli autori di patch di trarre vantaggio da patch delta più piccole. Se il programma di installazione rileva che la patch delta non può essere applicata al file di destinazione, il programma di installazione può tentare di usare un file salvato nella cache di base come punto di partenza. Il programma di installazione si limita a richiedere l'origine di installazione originale dopo aver tentato tutte le possibilità nella cache.

L'adesione alle linee guida seguenti può aiutare gli autori di patch a usare patch di Windows Installer versione 3.0 e la cache di base per creare patch delta più piccole:

  • Creare patch che includono la tabella MsiPatchSequence. Questa tabella è necessaria per usare la cache di base ed è disponibile a partire da Windows Installer versione 3.0.
  • Non impostare criteri che impediscono la memorizzazione nella cache della baseline. Il valore del criterio MaxPatchCacheSize specifica la percentuale massima di spazio su disco che può essere usata. Se il criterio MaxPatchCacheSize è impostato su 0, non vengono salvati file aggiuntivi nella cache di base. Se il criterio non è impostato, il valore predefinito è che è possibile usare un massimo del 10% dello spazio su disco. Se la dimensione totale della cache raggiunge la percentuale massima di spazio su disco, non vengono salvati file aggiuntivi. Il criterio non influisce sui file già salvati. Anche quando la memorizzazione nella cache è disabilitata, il programma di installazione può usare le cache della baseline del prodotto esistente.
  • Se la prima patch applicata include la tabella MsiPatchSequence, la memorizzazione nella cache è abilitata per l'applicazione.
  • Se qualsiasi patch nella transazione di manutenzione non include la tabella MsiPatchSequence, la memorizzazione nella cache è abilitata per l'applicazione solo se viene applicata una patch di aggiornamento secondaria (service pack) che include la tabella MsiPatchSequence viene applicata correttamente al prodotto.
  • Generare il pacchetto patch usando strumenti di creazione di patch, ad esempio Msimsp.exe e PATCHWIZ.DLL.
  • Patch di destinazione sempre per la versione RTM dell'applicazione o per una versione secondaria di aggiornamento (Service Pack) dell'applicazione. Le destinazioni specificate nella tabella TargetImages del file Patch Creation Properties (PCP) devono essere punti di controllo del prodotto definiti dai primi tre campi della proprietà ProductVersion .
  • Nessuna patch di destinazione in piccole immagini di aggiornamento. Le destinazioni per la compilazione della patch non devono includere immagini di aggiornamento di piccole dimensioni precedenti.