metaetiqueta - Errores de validación de WiX ICE
wix head tag (6)
Estoy teniendo problemas extraños con WiX en mi máquina local. El problema es intermitente, pero después de algunas reconstrucciones de la solución, el proyecto WiX comienza a arrojar errores de validación de ICE.
Si voy a mi carpeta AppData/Local/Temp
y elimino todas las carpetas temporales que contienen el MSI, la solución vuelve a compilarse. Poco tiempo después, el problema comienza a suceder nuevamente. Tener que seguir limpiando las carpetas temporales no es una solución sostenible o satisfactoria.
¿Alguien más ha encontrado este problema? Los códigos de error de validación parecen ser siempre una combinación de ICE30, ICE38, ICE64 e ICE91.
Actualizar:
Según lo solicitado, aquí están las entradas de la falla más reciente:
error LGHT0204: ICE38: Error interno de ICE 1002. API devuelta: 1615.
error LGHT0204: ICE38: Error 2235: /OU.AppFramework.Includes.msi, _Profile, UPDATEDirectory
SET_Profile
= 0
error LGHT0204: ICE64: ICE Error interno 1001. API devuelta: 1615.
error LGHT0204: ICE64: Error 2242: OU.AppFramework.Includes.msi, _Profile, ALTER TABLEDirectory
ADD_Profile
SHORT TEMPORARY HOLD
error LGHT0204: ICE91: ICE Error interno 1001. API devuelta: 1615.
error LGHT0204: ICE91: Error 2242: OU.AppFramework.Includes.msi, _Profile, ALTER TABLEDirectory
ADD_Profile
TEMPORAL CORTO
Curiosamente, esta falla ocurrió antes de que saliera de la oficina anoche, y la solución compiló bien cuando llegué esta mañana. Como parece centrarse en el directorio temporal donde está construido el MSI con WiX, ¿podría ser el proceso de compilación el que bloqueara el archivo?
Actualización 2:
Y ahora volvemos a más de 600 errores, en su mayoría la repetición de este error:
error LGHT0204: ICE30: ICE Error interno 100. API devuelta: 1615.
error LGHT0204: ICE30: Error 2235: AppFramework.Includes.msi, _ICE30SFN, SELECTDirectory_Parent
,Directory
,DefaultDir
,_ICE30SFN
,_ICE30LFN
FROMDirectory
WHEREDirectory
.Directory
=? ANDDirectory_Parent
<>?
Actualización 3:
El problema persiste incluso después de probar la sugerencia de @limpan. Hay un par de advertencias dadas por la luz que son causadas por la carpeta de salida de MSI que se bloquea cuando la luz intenta acceder al MSI:
Advertencia 549 El directorio ''/ AppData / Local / Temp / 2opu3hxf'' está en uso y no se puede eliminar. light.exe
Intente agregar <RunWixToolsOutOfProc>true</RunWixToolsOutOfProc>
a su archivo de proyecto de WiX.
Hemos tenido el mismo problema durante un tiempo, y hemos intentado varias soluciones, incluida la eliminación de los archivos temporales y la configuración de la variable de entorno msbuild. Todo parecía funcionar por un tiempo, pero finalmente (a veces después de unos días) el problema volvería.
Noté que en mi máquina devenv.exe era el proceso que estaba bloqueando los archivos que light.exe intentaba eliminar. También tropecé con un thread no relacionado que mencionaba la configuración de este proyecto para que las herramientas de WiX se quedaran sin proceso. Pensé que podría valer la pena intentarlo y parece haber curado el problema para nosotros (hasta ahora ...)
Para ICE30: ICE Internal Error 100. API Returned: 1615 , por favor intente esto y vea si funciona:
- Cierre todas las instancias de Visual Studio (puede ser solo la que importa, pero por las dudas)
- Vaya a
C:/Documents and Settings//****user id****//Local Settings/Temp/
. - Borre todas las carpetas que se vean así .. ''s12qgaks''. Básicamente contiene los archivos MSI
- Abra la solución y vuelva a compilar.
¡Buena suerte!
Para mí MSBUILDDISABLENODEREUSE = 1 (o / nr: falso en la línea de comandos) no resolvió el problema. Pero <RunWixToolsOutOfProc> true </ RunWixToolsOutOfProc> hizo su trabajo.
Tuve el mismo problema. Resultó ser mi software Anti Virus (OfficeScan). Tenía los archivos intermedios creados por Light.exe bloqueados y el proceso de validación falló. Excluir la carpeta temporal del análisis de virus o desactivar la validación de ICE no es una solución aceptable.
Si alguien tiene una mejor solución. Me gustaría saber.
Tuve este problema también y lo resolví en mi entorno.
Respuesta corta:
Agregue la variable de entorno MSBUILDDISABLENODEREUSE=1
y reinicie Visual Studio
Respuesta larga:
Hubo una advertencia durante la compilación que no vi por primera vez porque estaba demasiado concentrado en el error:
Error al eliminar el directorio temporal: C: / Users [username] / AppData / Local / Temp / 5 [uniqueFolderName] light.exe
Traté de eliminar la carpeta de forma manual, pero estaba siendo utilizada por otro proceso.
Resulta que muchos procesos de MSBuild.exe se inician durante la compilación y luego no se vuelven a cerrar. Puede leer más sobre el motivo y lo que puede hacer para cambiar ese comportamiento en preguntando msbuild.exe permaneciendo abierto, bloqueando archivos .
Este hilo: esto y la solución en este hilo:
Espero que esta respuesta pueda ayudar a alguien más.
Yo también me había enfrentado el mismo problema. En las propiedades del proyecto, vaya a Configuración de la herramienta y haga clic en Suprimir la validación de ICE .