Condividi tramite


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 di installazione originale.

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

  • Usare patch per file interi. 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 maggiori di dimensioni 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 acceda al percorso originale di origine.
  • 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 versionati. Lo strumento Windows Installer SDK, Msifiler.exe, può eseguire facilmente questa operazione.
  • Assicurarsi che tutti i file abbiano le informazioni corrette sulla versione e sulla lingua. Lo strumento Windows Installer SDK, Msifiler.exe, può eseguire facilmente 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 dal codice sorgente. 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 non versionati senza voci di MsiFileHash. È necessario un tabella MsiFileHash per evitare la copia non necessaria di file nonversioni 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ò causare il declassamento dei file e quasi sempre richiede il file originale. Il valore REINSTALLMODE consigliato è omus.

  • Il pacchetto memorizzato nella cache per il prodotto non è presente. 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 aggiorna 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 una nuova copia della versione 1.0 di Example.dll dal percorso di origine originale in modo che la patch possa essere applicata correttamente.

Requisiti di origine durante 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 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 .