2010-09-27 9 views
11

Estoy tratando de integrar WiX en mi solución de compilación automatizada utilizando TFS 2010 ejecutándose en Windows Server 2008 R2. Todo parecía muy fácil, y luego me sale esto:WiX: Misteriosos y difíciles de diagnosticar errores de validación de ICE en la creación del servidor de compilación

light.exe: Error al ejecutar ICE acción 'ICE01'. La causa más común de este tipo de falla de ICE es un motor de scripting registrado incorrectamente. Consulte http://wix.sourceforge.net/faq.html#Error217 para obtener detalles y cómo solucionar este problema. El registrador de mensajes de la interfaz de usuario externa no esperaba el siguiente formato de cadena: "No se pudo acceder al servicio de instalación de Windows. Esto puede ocurrir si el instalador de Windows no está instalado correctamente. Póngase en contacto con su personal de asistencia para obtener ayuda".

Eso es raro. ¡Pero hey! Ellos proporcionaron un enlace. Eso debería ayudar, ¿verdad?

error LGHT0217
En WiX v3, Luz ejecuta automáticamente validation-- Windows del instalador evaluadores consistencia interna (ICE) --after cada generación exitosa. La validación es una forma excelente de detectar errores comunes de creación que pueden provocar problemas en el servicio, por lo que ahora se ejecuta de forma predeterminada. Desafortunadamente, hay un problema común que ocurre en Windows Vista y Windows Server 2008 que puede hacer que los ICE fallen. Para obtener detalles sobre la causa y cómo solucionarla, consulte el blog de Heath Stewart y el WebLog de Aaron Stebner.

No, en absoluto. Estas publicaciones simplemente describen una situación que involucra el registro de motores de scripting, y las condiciones que describen no estaban presentes. Sin embargo, me encontré con Re: (WiX-users) Why do I get ICE failures building from a serviceaccount? (2010-01-14), que parecía indicar que si usara una cuenta de dominio para ejecutar el servicio Windows Installer, que funcionaría. Parecía que valía la pena intentarlo.

"Por alguna razón en Windows 2008 (no he probado Vista, XP, 2003, 7, o 2008 R2) del Servicio de MSI sólo están disponibles en los inicios de sesión que, o bien tienen acceso administrativo o son inicios de sesión son "interactivas". inicios de sesión del servicio de cuentas que no tiene privilegios de administrador no puede acceder al servicio msi y por lo tanto no puede ejecutar pruebas de ICE ".

Sin embargo, al intentar iniciar el servicio Windows Installer con mi cuenta de servicio de construcción:

Windows podría no iniciar el servicio Windows Installer en sartén de 1. Error 1297: un privilegio que el servicio requiere para funcionar correctamente no existe en la configuración de la cuenta de servicio. Es posible utilizar los Servicios de Microsoft Management Console (MMC) en (services.msc) y la configuración de seguridad local de MMC (secpol.msc) para ver la configuración del servicio y la configuración de la cuenta.

Aceptar, Windows, por lo que me estás diciendo que mi cuenta de servicio de construcción le falta algún permiso ambigua que necesita para poner en marcha el servicio. Hacerlo administrador debería arreglar eso ¿no? No, eso tampoco funciona.

Así que volver a sistema local para la cuenta de servicio de Windows Installer. Esta vez hice que el servicio de compilación fuera un administrador local, ¡y lo logré! Sin embargo, esa no es una solución.

Mi siguiente idea fue intentar aislar el conjunto de permisos que el servicio de compilación realmente requeriría para hacer esto. Esa sería una buena solución en lugar de tener que agregar más cuentas al conjunto de administradores. Paso 1: acceda a la política de seguridad local y agregue la cuenta de servicio de compilación a todos los permisos que se otorgan actualmente a los administradores. En teoría, eso debería permitir que la construcción tenga éxito, y desde allí podría eliminar selectivamente los permisos hasta que haya aislado todos los permisos que deben mantenerse para que tenga éxito.

Desafortunadamente, incluso con los mismos permisos, la compilación fallará a menos que la cuenta de servicio de compilación sea miembro de los administradores locales. ¿Por qué es esto? ¿Qué otras cosas además de LSP tienen dependencias en el grupo de administradores que podría haber cambiado para llevar mi cuenta de servicio de compilación a la equivalencia con los administradores?

Conclusión actual: el servicio de compilación debe ser un administrador para evitar errores de validación ICE.

Preguntas abiertas:

  • ¿Por qué no mi idea de aislamiento permisos de trabajo?
  • ¿Qué está lanzando este misterioso Error 1297 al ejecutar Windows Installer Service como usuario de dominio? Casi no hay documentación que pueda encontrar sobre esto.
+0

Acabo de publicar mis hallazgos en http://stackoverflow.com/q/1064580/33499 Espero que ayude. – imagi

+0

Acabo de toparme con esto, hoy, con WiX 3.8 en una plataforma Win 8.1 Agent. No me encontré con los mismos problemas que tú, precisamente, pero configuré este como el resto de los agentes que tengo, excepto que este es un Dominio. ¿Podría ser este el culpable? Si es así, ¿cómo lo lograste? –

Respuesta

1

Yo también enfrenté el mismo problema. Después de algunas dificultades y de buscar en Google, llegué a la conclusión de que suprimir la validación de ICE en el proyecto de WiX haría que el proyecto se compilara.

+1

+1, consulte también [WiX 3.0 arroja el error 217, mientras se ejecuta por integración continua] (http://stackoverflow.com/q/1064580/33499) – wimh

Cuestiones relacionadas