Estoy construyendo un programa que usa complementos. Lamentablemente, el enlace dinámico del marco de plugins fuerza a RTL y VCL a salir de mi EXE de proyecto y a las versiones de BPL, y no tienen habilitada la información de depuración.¿Por qué mis unidades están "compiladas con una versión diferente" de mis propios archivos?
Así que construí un marco de prueba que enlaza a mis complementos estáticamente para que realmente pueda ver lo que estoy haciendo mientras rastreo el código. Pero ahora, cada vez que intento recompilar, aparece un error: "unit turbu_skills se compiló con una versión diferente de turbu_database.GDatabase"
He visto este error antes, pero solo cuando he estado cambiando las cosas Probablemente no debería haberlo sido, como las bibliotecas RTL o VCL. No entiendo por qué está haciendo eso con mi propio código. Las unidades turbu_skills y turbu_database son unidades que yo misma escribí. GDatabase es una variable singleton global, cuya definición de clase no he cambiado en semanas. Cualquier cambio que desencadena una recompilación causa este error, incluso si no he tocado nada en ninguna de las unidades.
Hacer una compilación completa (SHIFT-F9) hace que se compile correctamente. Pero si luego presiono SPACE en una unidad (cualquier unidad) y presiono F9, aparece el error nuevamente. ¿Qué está pasando y cómo lo detengo? Esto no ocurre en la aplicación principal, solo en el marco de prueba.
EDITAR: Tengo la fuente para todas mis unidades. Eliminar DCU y archivos similares no ayuda. Copiar el proyecto completo a una computadora diferente, eliminar todas las DCU y construir allí no ayuda. Existe un conflicto objetivo y reproducible entre el diseño de mi programa y el compilador, y quiero deshacerme de él.
La fuente se puede encontrar en http://www.turbu-rpg.com/downloads/Turbu_source_setup.exe si alguien quiere probarla. Requiere Delphi 2009 con el JVCL ya instalado; el paquete de instalación se encargará del resto. Tal vez tener el código fuente disponible ayudará a alguien a rastrearlo. Realmente lo espero, porque donde sea que esté el problema, me supera. El problema se puede encontrar en testing.exe y también en turbu.exe en turbu.groupproj.
EDIT 2: Resulta que esta fue otra cuestión de genéricos cruzados. Grr. Logré codificar una solución. Solo espero que solucionen pronto los problemas con los genéricos.
Probablemente deberías escribir una respuesta con el trabajo. Ayudaría a otros que tropezaran con el mismo problema. –
Gracias por el EDIT 2, me gustaría poder venir unas horas antes ... – Wodzu
@Mason Wheeler - ¡12 respuestas diferentes! SIMPLEMENTE ES INCREÍBLE cuántas personas tienen (todo tipo de) problemas relacionados con la búsqueda/ruta de la biblioteca. ¡Embarcadero hizo un trabajo muy, muy pobre explicando esto! – Ampere