Stiamo lavorando su un sistema di aggiornamento per il nostro software. L'aggiornamento deve essere eseguito in background come servizio e, quando è disponibile un aggiornamento, scaricarlo e installarlo. Abbiamo bisogno del servizio per installare l'aggiornamento dal momento che l'MSI richiede l'elevazione per l'esecuzione, ma alcuni dei nostri clienti saranno utenti con restrizioni.Esecuzione di msiexec da un servizio (account di sistema locale)
L'MSI è un MSI WiX ed esegue un aggiornamento importante durante l'esecuzione. Il problema è che l'aggiornamento non sembra funzionare quando viene eseguito dal nostro servizio. Posso vedere msiexec eseguire e restituisce correttamente, ma sembra non apportare modifiche al sistema. Lo stesso comando, eseguito dal mio account utente funziona come previsto.
Esiste qualche avvertenza sull'esecuzione di msiexec da un servizio di sistema locale?
Stiamo semplicemente facendo:
string arguments = "/i /quiet /lv*x " + pathToLogFile;
System.Diagnostics.Process.Start("msiexec.exe", arguments);
Quali argomenti stai passando? Sei sicuro di aver passato gli argomenti giusti per rendere questa un'installazione silenziosa? E cosa fa il tuo programma di installazione? –
Ho aggiornato la domanda per mostrare i nostri argomenti. L'installer potrebbe fare molte cose (a seconda delle funzionalità selezionate), incluse l'aggiunta di chiavi di registro a HKLM e HKCR, l'installazione di driver, la registrazione di oggetti COM e, naturalmente, la copia di file. Sfortunatamente l'accesso dell'amministratore è inevitabile. – Jarrod
Hai provato ad aggiungere l'opzione/qn (msiexec /? Ti mostrerà tutte le opzioni disponibili)? E il file di registro fornisce informazioni su errori o passaggi saltati? Puoi diff il registro con quello di un'installazione di successo? –