Install Shield 2009 de la revista Premier acción personalizada en Vista Home / Premium / Ultimate

StackOverflow https://stackoverflow.com/questions/876734

  •  22-08-2019
  •  | 
  •  

Pregunta

Medio Ambiente: Install Shield 2009 Premier, Vista (Home / Premium, Ultimate)

Tengo una acción personalizada en Install Shield 2009 que disparar durante la instalación. Si se ejecuta setup.exe su bien, pero cuando se ejecuta el MyApplication.msi en Vista (tenga en cuenta en otro sistema operativo las acciones personalizadas funcionan bien) que muestra la excepción de ejecutar la acción personalizada. acción personalizada se acaba ejecutando un exe con argumentos de línea de comandos.

Eso exe ejecuta bien individualmente en ese sistema operativo. Pero cuando MyApplication.msi quiere ejecutarlo, muestra una excepción.

pienso: MyApplication.msi no puede dar esa acción personalizada (archivo .exe) privilegio adecuado (administrativa) para funcionar con. Pero lata setup.exe.

¿Cómo puede ser resuelto ...?


Desde el asistente de acción personalizada para mi acción personalizada, para el valor "Dentro de la ejecución de scripts" Me eligieron "ejecución diferida En Contexto del sistema"

¿Fue útil?

Solución

No es cierto estado, pero suena como su setup.exe tiene un manifiesto que requiere privilegios administrativos (si obtiene un mensaje de UAC cuando inicie setup.exe, este es el caso). También suena probable que el exe que está intentando ejecutar desde su acción personalizada tiene un requisito de privilegios administrativos similares. Una acción personalizada exe en MSI utiliza CreateProcess que no puede elevarse.

Si su acción se ejecuta en la secuencia de la interfaz de usuario, es necesario utilizar ShellExecute o ShellExecuteEx de alguna forma -. Esto se puede hacer con una acción personalizada InstallScript usando LaunchApplication con el LAAW_OPTION_USE_SHELLEXECUTE bandera, o con C ++ que llama ShellExecuteEx directamente

Si su acción se ejecuta en la secuencia de ejecución, debe marcarlo "diferido en el contexto del sistema" por lo que se puso en marcha a partir de un contexto elevada, para empezar. Esto se prefiere en general (al menos en términos de la experiencia del usuario), ya que evita la UAC adicional pedirá que el otro método mostrará. Sin embargo, cualquier acción diferida tiene limitaciones (por ejemplo, acceso a la propiedad mínima) puede que tenga que familiarizarse con.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top