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
risposta
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.
Che ha davvero aiutato, soluzione perfetta, grazie mille! – tmighty
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]
.
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 –
@Alex, non esiste un modo diretto per determinarlo dallo script InnoSetup, quindi potrebbe essere il risposta. – TLama
Sì, si prega di impostare come "risposta". – tmighty