Condividi tramite


Impedire l'installazione di un pacchetto precedente su una versione più recente

I pacchetti di aggiornamento di Windows Installer possono essere creati per non installare aggiornamenti principali se un utente ha già installato una versione più recente. La procedura descritta in questo argomento può impedire solo i downgrade che potrebbero essere causati dall'esecuzione di un pacchetto di aggiornamento principale. Questa procedura si basa sull'azione FindRelatedProducts, che viene eseguita solo durante una prima installazione e non viene eseguita in modalità di manutenzione (reinstallazione). Poiché gli aggiornamenti secondari vengono eseguiti usando la reinstallazione, questa procedura non può essere utilizzata per determinare se un pacchetto di aggiornamento secondario sta tentando di effettuare il downgrade di un'applicazione. Per altre informazioni, vedere Preparazione di un'applicazione per gli aggiornamenti principali futuri.

Per impedire l'installazione di un pacchetto precedente in una versione più recente

  1. Immettere il UpgradeCode nella colonna Proprietà per il gruppo di prodotti correlati che possono essere idonei a ricevere questo aggiornamento nella colonna UpgradeCode della Tabella Upgrade .

  2. Immettere il flag di bit msidbUpgradeAttributesOnlyDetect nella Tabella di aggiornamento , colonna Attributi.

  3. Immettere la versione dell'aggiornamento fornito da questo pacchetto nella colonna VersionMin della tabella di aggiornamento . Lasciare vuota la colonna VersionMax.

  4. Immettere il nome della proprietà che deve essere impostata dalla 'azione FindRelatedProducts nella colonna ActionProperty della Aggiorna tabella.

  5. Aggiungere la proprietà SecureCustomProperties e la proprietà denominata nella colonna ActionProperty della tabella di aggiornamento alla tabella delle proprietà .

  6. Aggiungere un tipo di azione personalizzato 19 dopo l'azione FindRelatedProducts nella tabella InstallExecuteSequence . Includere un record nella tabella CustomAction per questa azione e immettere il testo da visualizzare nella colonna Obiettivo. L'azione personalizzata di tipo 19 è incorporata nel programma di installazione, quindi non esiste codice da scrivere.

  7. Immettere il nome dell'ActionProperty nella colonna Condizione del record nella Tabella InstallExecuteSequence che contiene il Tipo di Azione Personalizzato 19. Questa condizione determina che l'azione personalizzata venga eseguita solo quando la Tabella di Aggiornamento rileva che è già installata una versione più recente.

    Ad esempio, un pacchetto di Windows Installer che aggiorna un gruppo di prodotti correlati alla versione 3.0 può includere i record seguenti nelle tabelle Upgrade, CustomAction, InstallExecuteSequencee Proprietà. Tutti i prodotti correlati nel gruppo hanno lo stesso Codice di aggiornamento, ma il programma di installazione non installa questo pacchetto di aggiornamento se nel computer è già installata una versione successiva alla 3.0. In questo caso, il programma di installazione visualizza un messaggio di errore e l'installazione non riesce. Il pacchetto di aggiornamento versione 3.0 si installa sulle versioni 1.0 e 2.0.

    tabella di aggiornamento

    UpgradeCode VersionMin VersionMax Lingua Attributi Togliere ActionProperty
    {E7BE6D45-49FF-4701-A17E-BDCC98CE180D} 3.0   msidbUpgradeAttributesOnlyDetect NUOVOPRODOTTOTROVATO
    {E7BE6D45-49FF-4701-A17E-BDCC98CE180D} 1.0 3.0 msidbUpgradeAttributesVersionMinInclusive AGGIORNAMENTO TROVATO

     

    Tabella CustomAction

    Azione Digitare Fonte Bersaglio
    CA1 19 È già installato un aggiornamento superiore.

     

    Tabella InstallExecuteSequence

    Azione Condizione Sequenza
    TrovaProdottiCorrelati 200
    CA1 NUOVOPRODOTTOTROVATO 201

     

    tabella delle proprietà

    Proprietà Valore
    SecureCustomProperties NUOVOPRODOTTO TROVATO; AGGIORNAMENTO TROVATO