¿Por qué mis unidades están "compiladas con una versión diferente" de mis propios archivos?
Estoy construyendo un programa que usa complementos. Desafortunadamente, la vinculación dinámica del marco del complemento fuerza a RTL y VCL a salir de mi proyecto EXE y a las versiones BPL, y no tienen habilitada la información de depuración.
Así que construí un marco de prueba que se vincula a mis complementos de forma estática para que realmente pueda ver lo que estoy haciendo al rastrear 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 cosas, probablemente no debería haberlo hecho, 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 ambas unidades que escribí yo mismo. GDatabase es una variable global única, cuya definición de clase no he cambiado en semanas. Cualquier cambio que desencadene una recompilación provoca 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 presionoESPACIO en una unidad (alguna unidad) y presiono F9, obtengo el error nuevamente. ¿Qué está pasando y cómo lo detengo? Esto no sucede en la aplicación principal, solo en el marco de prueba.
EDITAR: Tengo la fuente de todas mis unidades. Eliminar DCU y archivos similares no ayuda. Copiar todo el proyecto en una computadora diferente, eliminar todas las DCU y construir allí no ayuda. Hay 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 enhttp://www.turbu-rpg.com/downloads/Turbu_source_setup.exe si alguien quiere probarlo 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 rastrear esto. Ciertamente espero que sí, porque donde sea que esté el problema, está más allá de mí. El problema se puede encontrar en testing.exe y también en turbu.exe en turbu.groupproj.
EDIT 2: Resulta que este era otro problema genérico entre unidades. Grr. Logré codificar una solución alternativa. Solo espero que solucionen los problemas genéricos pronto.