2012-10-30 5 views
7

Ho uno script Inno Setup che installa la mia applicazione ei relativi file. Su alcuni sistemi è necessario un riavvio, in alcuni no. Vorrei sapere il motivo del riavvio richiesto. Come lo farei in modo più intelligente? Grazie mille.InnoSetup: scopri il motivo del riavvio

+1

Solo per il debug? È possibile dare un'occhiata a HKLM \ System \ CurrentControlSet \ Control \ Session Manager \ PendingFileRenameOperations per vedere se ci sono mosse/eliminazioni in coda in attesa del prossimo riavvio –

+0

@Alex, non esiste un modo diretto per determinarlo dallo script InnoSetup, quindi potrebbe essere il risposta. – TLama

+0

Sì, si prega di impostare come "risposta". – tmighty

risposta

4

per il debug è possibile sbirciare dentro

HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

per vedere se ci sono mosse/rinomina/cancella in coda al riavvio successivo.

(Sysinternals utility viewer)

+1

Che ha davvero aiutato, soluzione perfetta, grazie mille! – tmighty

1

Usa /LOG quando si esegue l'installazione e poi guardare il file di registro che genera (per impostazione predefinita in %TEMP%). Dovrebbe mostrare abbastanza chiaramente là quali file sono stati accodati per la sostituzione al riavvio, o quali altri motivi hanno causato l'emissione di una richiesta di riavvio.

solito riavvio vengono attivati ​​da un uso eccessivo di restartreplace senza usare qualcosa come AppMutex per garantire che l'applicazione è stata chiusa correttamente prima di installare, o da subinstalls eseguiti durante [Run].