Siguiendo con las crónicas de Winsucks, programé una pequeña aplicación para probar el uso de varias librerías estáticas dentro de un ejecutable e, intentando correrlo en otro computador (Windows Server 2008) se tira

The application has failed to start because its side-by-side configuration is incorrect.
Please see the application event log for more detail

Supuestamente >> ésto se debe a que faltan las librerías CRT (Visual C++ Runtime Library) que debieran venir en los Visual C++ Redistributable Package >>.
El problema es que una vez instalado el redistribuíble – y reiniciado – el mismo error sigue saliendo.

Si miramos los logs en el Event Viewer (así >>) dice

Activation context generation failed for "C:\Users\Administrator\Desktop\****\****\Debug\ProtocolBuffer****.exe".
Dependent Assembly Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found.
Please use sxstrace.exe for detailed diagnosis.

El único post que me ha hecho sentido es éste >>, que dice que ésa es una dll de Debug que, por ende, no es redistribuíble.
El problema es que en Release obtengo el mismo error. ¿Será que Release tiene alguna dependencia a una librería de Debug?

A ver si podemos obtener información más detallada con sxstrace.exe (side-by-side trace, justamente)
Es cosa de habilitar sxstrace con >>

sxstrace trace -logfile:sxstrace.etl
hacer correr el programa y que se caiga, y después parsear el resultado para leerlo como txt
sxstrace parse -logfile:sxstrace.etl -outfile:sxstrace.txt

Bueno, éso no ayudó. Pero efectivamente el problema era que una de las librerías que linkeaba a su vez estaba enlazada (todo estáticamente) a una librería de Debug en vez de su versión Release.

Este sitio utiliza cookies.    Leer más
Privacidad