Azione InstallValidate
L'azione InstallValidate verifica che tutti i volumi a cui è stato attribuito il costo dispongano di spazio sufficiente per l'installazione. L'azione InstallValidate termina l'installazione con un errore irreversibile se uno spazio su disco è insufficiente.
L'azione InstallValidate notifica inoltre all'utente se uno o più file da sovrascrivere o rimuovere sono attualmente in uso da un processo attivo. Per altre informazioni, vedere Riavvii di sistema.
Restrizioni della sequenza
L'azione CostFinalize e le sequenze di finestre di dialogo dell'interfaccia utente che consentono all'utente di modificare gli stati di selezione e/o le directory devono essere sequenziate prima dell'azione InstallValidate.
Le azioni personalizzate che modificano lo stato di installazione delle funzionalità o dei componenti devono essere sequenziate prima dell'azione InstallValidate.
Messaggi ActionData
Non sono presenti messaggi ActionData.
Commenti
In genere, una sequenza di finestra di dialogo precedente dell'interfaccia utente deve eseguire la stessa verifica dell'azione InstallValidate quando l'utente tenta di avviare la copia dei file. Questa sequenza di finestra di dialogo dell'interfaccia utente deve presentare una finestra di dialogo Spazio su disco insufficiente se i volumi selezionati non hanno spazio sufficiente per l'installazione. Le finestre di dialogo dell'interfaccia utente devono essere create in modo da impedire all'utente di procedere con l'installazione in caso di spazio su disco insufficiente. Nel caso di un'installazione non interattiva, non è presente alcuna interfaccia utente e l'azione InstallValidate termina l'installazione se lo spazio su disco non è sufficiente. La causa della terminazione prematura viene registrata nel file di log se la registrazione è abilitata.
Una voce viene aggiunta a una tabella FilesInUse interna se un file viene sovrascritto o rimosso mentre è aperto per l'esecuzione o la modifica da qualsiasi processo durante i costi dei file. La tabella FilesInUse contiene colonne per il nome e il percorso completo del file. Quando viene eseguita l'azione InstallValidate, il programma di installazione esegue una query sulla tabella FilesInUse per le voci e determina il nome del processo usando il file. L'azione InstallValidate aggiunge un record alla tabella dell'interfaccia utente ListBox per ogni processo univoco identificato da questa query. Il record contiene i valori seguenti in ogni colonna:
Proprietà: FileInUseProcess
Valore: nome del processo
Testo: testo contenuto nella didascalia della finestra principale del processo
L'azione InstallValidate visualizza quindi la finestra di dialogo File in uso . In questa finestra di dialogo vengono visualizzati i processi che devono essere arrestati per evitare il riavvio del sistema per sostituire i file in uso.
L'azione InstallValidate esegue una query sulla tabella Dialog per una finestra di dialogo creata con il nome riservato FilesInUse e la visualizza. Questa finestra di dialogo deve contenere un controllo ListBox associato a una proprietà denominata FileInUseProcess. Per convenzione, questa finestra di dialogo ha un pulsante Esci, Riprova o Ignora , ma questo è l'autore dell'interfaccia utente. Ogni pulsante deve essere associato a un oggetto EndDialogControlEvent nella tabella ControlEvent . L'azione InstallValidate risponde come segue al valore restituito da DoAction ControlEvent, come determinato da uno di questi argomenti EndDialog associati al pulsante premuto dall'utente:
Riprova: tutti i valori aggiunti alla tabella ListBox vengono cancellati e l'intera procedura di costo dei file viene ripetuta, verificando nuovamente i file ancora in uso. Se uno o più processi vengono ancora identificati come file da sovrascrivere o eliminare, il processo si ripete; in caso contrario, InstallValidate restituisce il controllo al programma di installazione con lo stato msiDoActionStatusSuccess.
Exit: l'azione InstallValidate restituisce immediatamente il controllo al programma di installazione con stato msiDoActionStatusUserExit. L'installazione viene terminata.
Qualsiasi altro valore restituito: l'azione InstallValidate restituisce immediatamente il controllo al programma di installazione con lo stato msiDoActionStatusSuccess. In questo caso, poiché uno o più file sono ancora in uso, le azioni InstallFiles e/o InstallAdminPackage successive devono pianificare i file in uso da sostituire o eliminare al riavvio del sistema.
Se nel database non è presente alcuna tabella ListBox , InstallValidate viene chiuso automaticamente senza errori.
Il punto e virgola è il delimitatore di elenco per trasformazioni, origini e patch e non deve essere usato in questi nomi di file o percorsi.
I file contrassegnati come di sola lettura in un percorso di sola lettura non vengono mai considerati in uso dal programma di installazione.
Se il livello dell'interfaccia utente è di base, viene visualizzata una finestra di dialogo Predefinita spazio su disco contenente i pulsanti Interrompi e Riprova .