Estoy tratando de instalar un servicio usando InstallUtil.exe pero invoqué Process.Start. Aquí está el código:
ProcessStartInfo startInfo = new ProcessStartInfo (m_strInstallUtil, strExePath);
System.Diagnostics.Process.Start (startInfo);
donde m_strInstallUtilestá la ruta totalmente calificada y exe a "InstallUtil.exe" y strExePathes la ruta / nombre totalmente calificado a mi servicio.
Ejecutar la sintaxis de la línea de comandos desde un símbolo del sistema elevado funciona; desde mi aplicación (usando el código anterior) no. Supongo que estoy lidiando con un problema de elevación del proceso, entonces, ¿cómo ejecutaría mi proceso en un estado elevado? ¿Necesito mirar ShellExecuteesto?
Todo esto está en Windows Vista. Estoy ejecutando el proceso en el depurador VS2008 elevado a privilegio de administrador.
También intenté configurar, startInfo.Verb = "runas";pero no pareció resolver el problema.
startInfo.UseShellExecute = true;además destartInfo.Verb = "runas";que funcionó bien para mí.