Evento de compilación previa de Delphi que no se ejecuta ANTES de compilar

Estoy ocupado automatizando nuestras compilaciones para incluir el número de revisión svn. Estamos usando Delphi 2010. Agregué un evento previo a la compilación que llama a un archivo por lotes que inyecta el número de revisión svn (leído del archivo de entradas en el directorio .svn) y un número de versión específico en aVersionInfo.rc que se compila con mi proyecto. El evento previo a la construcción se ve así:

call SetVersionInfo.bat 6 5 4

... y el archivo por lotes (espero que alguien encuentre esto útil) ...

@ECHO OFF
SETLOCAL
setLocal EnableDelayedExpansion

SET _myVar=0
FOR /F %%G in (.svn\entries.) DO (
IF !_myVar! LSS 3 SET /A _myVar+=1 & SET _svn_dir_rev=%%G
)

ECHO 1 VERSIONINFO > aVersionInfo.rc
ECHO. FILEVERSION %1,%2,%3,%_svn_dir_rev%   >> aVersionInfo.rc
ECHO. PRODUCTVERSION 1   >> aVersionInfo.rc
ECHO. FILEOS VOS__WINDOWS32   >> aVersionInfo.rc
ECHO. FILETYPE VFT_APP   >> aVersionInfo.rc
ECHO. BEGIN   >> aVersionInfo.rc
ECHO.   BLOCK "StringFileInfo"   >> aVersionInfo.rc
ECHO.   BEGIN   >> aVersionInfo.rc
ECHO.     BLOCK "080904b0"   >> aVersionInfo.rc
ECHO.     BEGIN   >> aVersionInfo.rc
ECHO.       VALUE "CompanyName","COMPANY\000"   >> aVersionInfo.rc
ECHO.       VALUE "FileDescription","APP\000"   >> aVersionInfo.rc
ECHO.       VALUE "FileVersion","%1.%2.%3.%_svn_dir_rev%\000"   >> aVersionInfo.rc
ECHO.       VALUE "InternalName","APP\000"   >> aVersionInfo.rc
ECHO.       VALUE "LegalCopyright","Copyright APP\000"   >> aVersionInfo.rc
ECHO.       VALUE "LegalTrademarks","APP\000"   >> aVersionInfo.rc
ECHO.       VALUE "OriginalFilename","APP.exe\000"   >> aVersionInfo.rc
ECHO.       VALUE "ProductName","APP\000"   >> aVersionInfo.rc
ECHO.       VALUE "ProductVersion,"1\000"   >> aVersionInfo.rc
ECHO.       VALUE "Comments","Compiled on %date% by %username%\000"   >> aVersionInfo.rc
ECHO.     END   >> aVersionInfo.rc
ECHO.   END   >> aVersionInfo.rc
ECHO.   BLOCK "VarFileInfo"   >> aVersionInfo.rc
ECHO.   BEGIN   >> aVersionInfo.rc
ECHO.     VALUE "Translation", 0x0809 1200   >> aVersionInfo.rc
ECHO.   END   >> aVersionInfo.rc
ECHO. END   >> aVersionInfo.rc
ENDLOCAL

El archivo por lotes se ejecuta como parte de una compilación, aVersionInfo.rc se actualiza, aVersionInfo.res se vuelve a compilar, pero por alguna razón, el nuevo archivo res no se usa para compilar el archivo ejecutable. Sin embargo, se actualiza durante una compilación limpia o si compilo por segunda vez. Parece que la comprobación de cambios en los archivos rc se realiza antes de que se llame a los eventos "pre" -build. Lo que realmente hace que sea un evento de construcción media. ¿O me estoy perdiendo algo?

Intenté eliminar el archivo aVersionInfo.res como otro evento previo a la compilación, pero luego el compilador se queja de que falta este archivo. ¿Podría ser que el

{$R 'aVersionInfo.res' 'aVersionInfo.rc'}

¿La línea está en el lugar equivocado?

Respuestas a la pregunta(5)

Su respuesta a la pregunta