Costruzione di un ICE
Se non si riesce a trovare gli analizzatori di coerenza interna necessari tra le azioni personalizzate ICE esistenti elencate nel riferimento ICE, sarà necessario preparare il proprio ICE per convalidare il pacchetto.
Quando si creano azioni personalizzate ICE, è necessario eseguire le operazioni seguenti:
- Basare gli ices solo sulle azioni personalizzate dei tipi elencati nella tabella illustrata.
- Chiamare MsiProcessMessage e pubblicare un INSTALLMESSAGE_USER tipo di messaggio. Quando si creano i messaggi ICE, seguire il formato del messaggio nelle linee guida per i messaggi ICE.
- Scrivere ice in modo che acquisisca eventuali errori dell'API e restituisca sempre ERROR_SUCCESS. Ciò è necessario per consentire l'esecuzione di azioni personalizzate successive in seguito all'errore di un ICE.
Le azioni personalizzate ICE sono limitate ai seguenti tipi di azioni personalizzate.
Tipo di azione personalizzato | Descrizione |
---|---|
Tipo di azione personalizzato 1 | DLL nel flusso binario |
Tipo di azione personalizzato 2 | EXE nel flusso binario |
Tipo di azione personalizzato 5 | JScript nel flusso binario |
Tipo di azione personalizzato 6 | VBScript nel flusso binario |
Tipo di azione personalizzato 37 | Codice JScript come stringa |
Tipo di azione personalizzato 38 | Codice VBScript come stringa |
Quando si crea un'azione personalizzata ICE, non eseguire le operazioni seguenti:
- Non presupporre che l'handle al motore ricevuto da ICE sia un'istanza di installazione del database del programma di installazione. Se non è un'istanza di installazione, alcune proprietà non vengono definite, le directory di origine e di destinazione non vengono risolte e gli stati di funzionalità correnti non vengono definiti.
- Non fare affidamento sull'esecuzione precedente, o non esecuzione, di alcuna azione del programma di installazione, di un'azione personalizzata o di un altro ice. Poiché un ice precedente potrebbe aver creato colonne temporanee in qualsiasi tabella, gli autori devono fare riferimento alle colonne in base al nome quando possibile. Gli ices devono pulire tutte le colonne o le tabelle temporanee prima di uscire.
- Non presupporre che gli autori abbiano accesso a un'immagine della directory di origine del database.
- Non presupporre che le modifiche apportate al database non vengano mantenute.
Argomenti correlati