2010-12-15 12 views
11

Comenzar a aprovechar al máximo el sistema de eventos de compilación en XE, pero una cosa que noté es que no puedo configurar eventos de compilación predeterminados en la configuración predeterminada del proyecto. ¿Hay algún tipo de solución/pirateo/lo que sea que haría esto posible? Estoy mirando CodeGear.Group.Targets y CodeGear.Delphi.Targets en el directorio bin, si esto es posible, ¿sería allí donde debería estar mirando?Delphi XE build events .. globally?

Gracias

+1

+1. A mí también me gustaría mucho. Cada vez que construyo algo, quiero ejecutar .bat. Ahora tengo que agregar este script a cada nuevo proyecto, lo cual es molesto. –

+1

Bienvenido a StackOverflow, Jen. Es bueno ver que pudiste hacer una buena pregunta y dar una buena respuesta la primera vez. :) –

+0

Gracias :) Estaba jugando con eso por un par de días y así sucesivamente, y por supuesto lo averigué media hora después de preguntar por él jajaja ... con suerte Embarcadero implementa algo como esto en el IDE con su próxima versión en lugar de tener que confiar en un kludge. –

Respuesta

15

Ah ha. Respondió mi propia pregunta. (¿Hay un botón de borrar en alguna parte? Lol)

hice algunos experimentos, añadido un poco fácil encontrar pre y post eventos de generación (es decir, lanzar el editor del registro y el bloc de notas ..)

En el directorio bin de Delphi hay una archivo llamado CodeGear.Delphi.Targets. Dentro de eso, después de que las secciones de importación, añadí:

<PropertyGroup> 
    <PreBuildEvent><![CDATA[regedit.exe]]></PreBuildEvent> 
    <PostBuildEvent><![CDATA[notepad.exe $(MSBuildProjectFile)]]></PostBuildEvent> 
</PropertyGroup> 

reinicia el IDE, y un nuevo proyecto vacío ejecutado esos programas en pre y post construcción. Sin embargo, tenga en cuenta que no aparecen en la pantalla de configuración del proyecto, pero puede anularlos, anulando lo que haya en el archivo CodeGear.Delphi.Targets. Barato, pero parece ser el truco, y aún puede anularlo si es necesario en un proyecto específico. (Solo asegúrese de respaldar el archivo original, por supuesto.)

+3

¡Responda su propia pregunta perfectamente bien en SO, si la descubre antes que nadie! –

+1

Hasta ahora solo he hecho una pregunta en SO, ¡y luego la he respondido! Pero deje estas preguntas en SO, para que otros puedan encontrar su respuesta. –

1

@Jen Smith: Muy inteligente. Y en caso de que alguien esté interesado, ahora he usado tu idea para ponerte loco. Excepto parchear el binario exe como parte de una compilación de línea de comando sin tener que personalizar un proyecto específico ...:

Pon esto después de la sección 'Importar' de CodeGear.Delphi.Targets ..

<PropertyGroup> 
    <PostBuildEvent><![CDATA["$(programFilesx86)\madCollection\madExcept\Tools\madExceptPatch.exe" "$(DCC_ExeOutput)$(MSBuildProjectName).exe" "$(MSBuildProjectDirectory)\$(MSBuildProjectName).mes"]]></PostBuildEvent> 
    </PropertyGroup> 
Cuestiones relacionadas