una tipos tabla simple secundaria relaciones que llena datos como claves clave caracteristicas campo wix windows-installer

wix - tabla - tipos de datos en access



¿Por qué MSI CustomAction que establece una clave de registro necesita ser diferida en Vista con UAC? (2)

Su acción personalizada se estaba ejecutando inmediatamente cuando se encontró en InstallExecuteSequence; en lugar de cuando se estaba ejecutando el script de instalación real. Esto provocó que la acción personalizada se ejecutara con los permisos de los usuarios en lugar de con los permisos elevados del sistema. Esta serie de publicaciones de blog explicará en detalle lo que está sucediendo, http://blogs.msdn.com/rflaming/archive/2006/09/23/768146.aspx . No debe tener acciones personalizadas que afecten el estado de la máquina que no se ejecutan como acciones personalizadas diferidas.

Tenemos una CustomAction que establece alguna clave de registro HKEY LOCAL_MACHINE. Esto no funcionaba en Vista con UAC, hasta que hicimos la acción "diferida". El instalador funcionó en otros casos. Alguien sabe por qué?

Estamos usando WIX para crear el instalador.


+1 Lance. Para decirlo de otra manera y dar algo más de información

Hay 2 pasos en el proceso de MSI

  • Inmediato : donde se recopilan las preferencias (instalar dir, etc.), no se deben realizar cambios en la máquina aquí.

y luego más tarde

  • Diferido : que se ejecuta después de que se hayan recopilado todas las preferencias y, en realidad, se realice la instalación.

Algunos pensamientos adicionales

  • Inmediato no siempre se ejecuta (por ejemplo, instalación con script) así que no confíe en él.

Hay 2 modos en los que se puede ejecutar una acción diferida

  • NoImpersonate - aka NT Authority / System que tiene permiso completo en su computadora

  • Suplantar - quien inició la instalación.

Con UAC habilitado, Impersonate tiene un kicker. Solo tendrá el token de usuario estándar y no tendrá derechos de administrador , incluso si el usuario es en realidad un administrador, por lo que debe mantener NoImpersonate si es posible, de lo contrario su acción personalizada no podrá hacer nada.