Sto cercando di installare un servizio utilizzando InstallUtil.exe ma invocato tramite Process.Start
. Ecco il codice:
ProcessStartInfo startInfo = new ProcessStartInfo (m_strInstallUtil, strExePath);
System.Diagnostics.Process.Start (startInfo);
dove si m_strInstallUtil
trova il percorso completo ed exe in "InstallUtil.exe" ed strExePath
è il percorso / nome completo per il mio servizio.
L'esecuzione della sintassi della riga di comando da un prompt dei comandi con privilegi elevati funziona; in esecuzione dalla mia app (utilizzando il codice sopra) no. Suppongo di aver a che fare con un problema di elevazione del processo, quindi come eseguirò il processo in uno stato elevato? Devo cercarlo ShellExecute
?
Questo è tutto su Windows Vista. Sto eseguendo il processo nel debugger VS2008 elevato al privilegio di amministratore.
Ho anche provato a impostare startInfo.Verb = "runas";
ma non sembra risolvere il problema.
startInfo.UseShellExecute = true;
inoltre,startInfo.Verb = "runas";
ha funzionato bene per me.