tag subversion entre diferencia create crear con como branches windows svn mfc versioninfo

windows - subversion - svn manual



Actualizando mediante programación FILEVERSION en una aplicación MFC con número de revisión SVN (5)

El cambio de VS_VERSION_INFO se reflejará cuando haga clic con el botón derecho en el archivo en el Explorador y solo vea las propiedades.

Si desea mostrar el número de revisión SVN actual en la barra de título, sugeriría:

  • Haga que un script obtenga el número de versión y genere el archivo version.h solo con

#define SVN_VERSION_NO xxx

  • Su proyecto incluye esta versión.h y usa ese número para mostrarlo en la leyenda.

¿Cómo hago para actualizar programáticamente la cadena FILEVERSION en una aplicación MFC? Tengo un proceso de compilación que utilizo para generar un archivo de encabezado que contiene el rev de SVN para una versión determinada. Estoy usando SvnRev desde http://www.compuphase.com/svnrev.htm para actualizar un archivo de encabezado que utilizo para configurar la barra de título de mi aplicación MFC. Ahora quiero usar este #define para mi información FILEVERION.

¿Cuál es la mejor manera de proceder?


En su archivo application.rc hay un bloque de versión. Este bloque controla la información de la versión que se muestra en el sistema de archivos.

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1

Usted puede actualizar programáticamente este archivo. Asegúrese de abrir y guardar el archivo como binario. Hemos tenido problemas donde las ediciones se realizan como texto y el archivo se corrompe.


Un archivo .rc puede .rc archivos de encabezado al igual que los archivos .c . Tengo un archivo autogenerado version.h , que define cosas como:

#define MY_PRODUCT_VERSION "0.47" #define MY_PRODUCT_VERSION_NUM 0,47,0,0

Entonces solo tengo mi archivo .rc #include "version.h" y uso esos define.

VS_VERSION_INFO VERSIONINFO FILEVERSION MY_PRODUCT_VERSION_NUM PRODUCTVERSION MY_PRODUCT_VERSION_NUM ... VALUE "FileVersion", MY_PRODUCT_VERSION "/0" VALUE "ProductVersion", MY_PRODUCT_VERSION "/0" ...

No he probado esta técnica con un proyecto de MFC. Puede ser necesario mover su recurso VS_VERSION_INFO a su archivo .rc2 (que no será editado por Visual Studio).



No tiene suficientes puntos para comentar todavía, pero sea cual sea la solución que elija, tenga en cuenta que los campos FILEVERSION solo pueden admitir un entero corto. En nuestra situación, nuestra revisión SVN ya estaba por encima de esto y dio como resultado un número de revisión inválido en nuestra FILEVERSION.