2011-06-01 8 views
5

Actualmente utilizamos Delphi 2009 y GIT para desarrollar una aplicación. Hemos configurado un script de preconstrucción para generar un número de versión e ID de construcción usando información de git y compilar esto como un recurso que se incluye en el proyecto. El problema es que este script no se ejecuta en una compilación normal. Esto significa que los otros desarrolladores pueden terminar con una discrepancia entre el número de versión real y el número en el recurso (especialmente cuando se cambian las ramas en git).Cómo forzar el script de prebuild para ejecutarse en cada compilación

Dado que utilizamos nuestro software para hacer algunos cálculos críticos, nos gustaría utilizar esta identificación de compilación para reproducir cálculos y localizar problemas.

Además de intentar obligar a mis desarrolladores a presionar shift-F9 con frecuencia, ¿cómo puedo asegurarme de que el script prebuild se ejecute cuando sea necesario (idealmente en cada compilación)?

Jason

ACTUALIZACIÓN: Es cierto que el script de pre-construcción se ejecute en cada compilación. El problema era que esperaba obtener un resultado diferente presionando F9 después de hacer una etiqueta en git, aunque ningún código había cambiado.

+0

mis acciones de compilación previa se ejecutan en cada compilación. No puedo imaginar por qué los tuyos no. –

+0

Bueno, cuando compilo/ejecuto el programa presionando F9, la información de la versión a menudo está desactualizada. Shift-F9 siempre corrige esto. Supongo que podría ser más riguroso, pero probablemente también sea razonable suponer que un lote de preconstrucción es precisamente eso ... precompra, y por lo tanto solo se inicia cuando se construye explícitamente. – boileau

Respuesta

0

Las acciones previas a la compilación se ejecutan antes de cada compilación.

Indique en un comentario que las acciones a veces no se ejecutan cuando presiona F9. Eso tiene sentido porque F9, o Ejecutar, solo invoca una compilación si se considera que la fuente ha cambiado.

Un plug-in de notificador BeforeCompile se comportará exactamente de la misma manera. Su solución es asegurarse de compilar antes de ejecutar usando Ctrl + F9.

3

Hemos resuelto un problema similar al escribir un complemento IDE personalizado que utiliza la interfaz IOTAIDENotifier50. Específicamente utilizando el método BeforeCompile, para probar algunas configuraciones de proyecto requeridas y también generar información de versión dinámica (recurso VERSIONINFO). Se llama para cada tipo de compilación (compilación y compilación). También generamos un número de serie exclusivo de exe y registramos todo, lo que nos ayuda a rastrear problemas y es similar a su secuencia de comandos. Para completar, solo lo hemos hecho en Delphi 2007 y Delphi XE.

+0

Eso suena como algo que no tengo los recursos (tiempo) para hacerme a mí mismo. ¿Estaría dispuesto a compartir algún código fuente de su plugin? – boileau

+0

aunque no resolvería su problema, escribir dicho complemento es trivialmente fácil. Antes de agregar las acciones previas y posteriores a la compilación, hice exactamente lo mismo que Steve y realmente es simple. –

Cuestiones relacionadas