Estamos trabajando en un sistema de actualización para nuestro software. El actualizador debe ejecutarse en segundo plano como un servicio, y cuando haya una actualización disponible, descárguelo e instálelo. Necesitamos el servicio para instalar la actualización ya que el MSI requiere elevación para ejecutarse, pero algunos de nuestros clientes serán usuarios restringidos.Ejecución de msiexec desde un servicio (cuenta del sistema local)
El MSI es un WiX MSI y hace una importante actualización cuando se ejecuta. El problema es que la actualización no parece funcionar cuando se ejecuta desde nuestro servicio. Puedo ver ejecutar msiexec, y vuelve con éxito, pero parece que no hace cambios en el sistema. El mismo comando, cuando se ejecuta desde mi cuenta de usuario funciona como se esperaba.
¿Hay alguna salvedad de ejecutar msiexec de un servicio de sistema local?
Simplemente estamos haciendo:
string arguments = "/i /quiet /lv*x " + pathToLogFile;
System.Diagnostics.Process.Start("msiexec.exe", arguments);
¿Qué argumentos estás pasando? ¿Estás seguro de que pasas los argumentos correctos para hacer que esto sea una instalación silenciosa? ¿Y qué hace tu instalador? –
Actualicé la pregunta para mostrar nuestros argumentos. El instalador podría estar haciendo muchas cosas (dependiendo de las características seleccionadas), incluida la adición de claves de registro a HKLM y HKCR, la instalación de controladores, el registro de objetos COM y, por supuesto, la copia de archivos. El acceso del administrador es lamentablemente inevitable. – Jarrod
¿Ha intentado agregar el modificador/qn (msiexec /? Le mostrará todas las opciones disponibles)? ¿El archivo de registro produce información sobre errores o pasos omitidos? ¿Se puede modificar el registro con el de una instalación exitosa? –