Impedire a una patch di richiedere l'accesso all'origine dell'installazione originale

Non è possibile eliminare tutte le circostanze in cui l'applicazione di una patch può richiedere l'accesso all'origine dell'installazione originale.

Attenersi ai punti seguenti per ridurre al minimo la possibilità che la patch richieda l'accesso all'origine originale:

  • Usare patch solo file intere. In questo modo si elimina la necessità di creare patch binarie per tutte le versioni rilasciate in precedenza del file. Si noti che le patch di file intere sono in genere di dimensioni maggiori rispetto alle patch binarie. È possibile impostare facilmente una patch per essere un'intera patch di file creando la proprietà IncludeWholeFilesOnly con un valore pari a 1 (uno) nel file Patch Creation Properties (PCP).
  • Assicurarsi che nessuna delle azioni personalizzate acceta al percorso di origine originale.
  • Assicurarsi che l'azione ResolveSource sia condizionalizzata in modo che venga eseguita solo quando necessario o in alternativa non sia presente affatto.
  • Popolare la tabella MsiFileHash per tutti i file non verificati. Lo strumento Windows Installer SDK, Msifiler.exe, può facilmente eseguire questa operazione.
  • Assicurarsi che tutti i file abbiano le informazioni corrette sulla versione e sulla lingua. Lo strumento Windows Installer SDK, Msifiler.exe, può facilmente eseguire questa operazione.

Requisiti di origine durante l'applicazione di patch

L'accesso alle origini di installazione originali può essere necessario per applicare la patch nei casi seguenti:

  • La patch si applica a una funzionalità attualmente eseguita dall'origine. In questo caso, la funzionalità viene passata dallo stato di esecuzione dall'origine allo stato locale.

  • La patch si applica a un componente con un file mancante o danneggiato.

  • La patch si applica a un file in un componente che contiene anche file nonversioni senza voci MsiFileHash. È necessaria una tabella MsiFileHash popolata per impedire la ricopia non necessaria di file non verificati dal percorso di origine.

  • La patch è stata applicata con un REINSTALLMODE di amus o emus. Questa opzione è pericolosa in quanto esegue operazioni di copia file indipendentemente dalla versione del file. Ciò può comportare la riconvalida dei file e richiede quasi sempre l'origine. Il valore REINSTALLMODE consigliato è omus.

  • Pacchetto memorizzato nella cache per il prodotto mancante. Il pacchetto memorizzato nella cache è necessario per l'applicazione di una patch. Il pacchetto memorizzato nella cache viene archiviato nella cartella %windir%\Installer.

  • Il pacchetto viene creato per effettuare una chiamata all'azione ResolveSource. Questa azione deve in genere essere evitata o condizionalizzata in modo appropriato, perché l'esecuzione comporta sempre un accesso all'origine.

  • Il pacchetto ha un'azione personalizzata che tenta di accedere all'origine in qualche modo. L'esempio più comune è un'azione personalizzata di installazione simultanea di tipo 23.

    Nota

    Le installazioni simultanee non sono consigliate per l'installazione di applicazioni destinate al rilascio al pubblico. Per informazioni sulle installazioni simultanee, vedere Installazioni simultanee.

     

  • Il pacchetto patch è costituito da patch binarie che non si applicano alla versione corrente del file nel computer.

Si consideri l'esempio seguente in cui Windows Installer richiede l'accesso all'origine originale quando si applica una patch:

  1. Installare la versione RTM dell'esempio di prodotto.
  2. Applicare patch Qfe1.msp al computer. Questa patch applica la versione 1.0 di Example.dll alla versione 1.1.
  3. Viene fornita una nuova patch, Qfe2.msp, che aggiorna Example.dll alla versione 1.2 e obsoleta Qfe1.msp. Tuttavia, la patch è stata creata solo per la versione 1.0 di Example.dll perché è stata generata usando la versione RTM del prodotto. Example.dll versione 1.2 include la correzione contenuta in Example.dll versione 1.1, ma il file msp è stato generato tra le immagini RTM e QFE2. Pertanto, quando Qfe2.msp viene applicato al computer, Windows Installer deve accedere all'origine originale. La patch binaria per Example.dll non può essere applicata alla versione 1.1; può essere applicato solo alla versione 1.0. Ciò comporta la ricopia della versione 1.0 del programma di installazione di Example.dll dal percorso di origine originale in modo che la patch possa essere applicata correttamente.

Requisiti di origine per la rimozione di una patch

L'accesso alle origini di installazione originali potrebbe essere necessario per rimuovere una patch se Windows Installer non ha archiviato le informazioni di base sulla patch. A partire da Windows Installer 3.0, il programma di installazione salva in modo selettivo le informazioni di base sui file quando vengono aggiornati. Per altre informazioni sulla cache di base, vedere Riduzione delle dimensioni delle patch .