Condividi tramite


Applicazione di patch di aree selezionate di un file

Quando si esegue l'patch dei file con contenuto variabile, potrebbe essere necessario conservare le aree selezionate del file di destinazione per evitare la perdita di informazioni critiche. Ad esempio, alcune applicazioni stampano le informazioni utente nel file eseguibile. Poiché il contenuto del file di destinazione potrebbe dipendere dal computer in cui è installata l'applicazione, diventa difficile determinare se un determinato file è una destinazione valida per la patch. Le informazioni utente scritte nel file di destinazione possono essere sovrascritte anche da una patch.

Quando si genera un file di proprietà di creazione patch (PCP) con Msimsp.exe e PATCHWIZ.DLL, è possibile specificare che le informazioni in determinate aree del file di destinazione vengono ignorate durante l'applicazione di patch. È anche possibile specificare che le informazioni in altre aree del file di destinazione vengano mantenute e copiate in un percorso di offset nel file aggiornato. Specificare le aree del file di destinazione da ignorare e quali aree conservare durante la creazione delle tabelle TargetFiles OptionalData, ExternalFiles eFamilyFileRanges .

Utilizzare la colonna RetainOffsets della tabella TargetFiles OptionalData e le colonne RetainOffsets e RetainLengths della tabella FamilyFileRanges per copiare un intervallo di informazioni dal file di destinazione a un intervallo di offset nel file aggiornato. Le informazioni contenute in questo intervallo vengono mantenute. Specificare la lunghezza dell'intervallo usando le colonne RetainLengths della tabella FamilyFileRanges. La lunghezza dell'intervallo conservato è la stessa nei file di destinazione e aggiornati. Specificare l'offset dell'intervallo nel file di destinazione usando la colonna RetainOffsets della tabella TargetFiles OptionalData. Specificare l'offset dell'intervallo nel file aggiornato usando la colonna RetainOffsets della tabella FamilyFileRanges. L'intervallo del file di destinazione conservato è quindi il valore di RetainOffsets nella tabella OptionalData di TargetFiles più RetainLengths. Queste informazioni vengono copiate nel file di aggiornamento nell'intervallo specificato dal valore di RetainOffsets nelle tabelle FamilyFileRanges e RetainLengths. È possibile specificare più intervalli, ma l'ordine delle lunghezze deve corrispondere all'ordine degli offset.

Usare la tabella TargetFiles FacoltativaData per ignorare un intervallo del file di destinazione. Le informazioni contenute in questo intervallo del file di destinazione possono comunque essere sovrascritte dalla patch. Specificare l'offset dell'intervallo nella colonna IgnoreOffsets e la relativa lunghezza nella colonna IgnoreLengths. È possibile specificare più intervalli, ma l'ordine delle lunghezze deve corrispondere all'ordine degli offset.

I valori nelle colonne di lunghezza e offset possono essere decimali o esadecimali. PATCHWIZ.DLL considera il valore esadecimale se è preceduto da "0x". Le colonne sono colonne stringa, quindi PATCHWIZ.DLL converte i valori in ULONGs. La colonna lunghezza specifica la lunghezza in byte.