以编程方式更新具有SVN修订号的MFC应用程序中的FILEVERSION

swi*_*c0x 7 svn windows mfc versioninfo

如何以编程方式更新MFC应用程序中的FILEVERSION字符串?我有一个构建过程,我用它来生成一个头文件,其中包含给定版本的SVN rev.我正在使用来自http://www.compuphase.com/svnrev.htm的 SvnRev 来更新我用来设置我的MFC应用程序的标题栏的头文件.现在我想将这个#define用于我的FILEVERION信息.

什么是最好的方法?

cjm*_*cjm 13

一个.rc文件可以#include头文件一样.c的文件即可.我有一个自动生成的version.h文件,它定义了以下内容:

#define MY_PRODUCT_VERSION    "0.47"
#define MY_PRODUCT_VERSION_NUM 0,47,0,0
Run Code Online (Sandbox Code Playgroud)

然后我只有我的.rc文件#include "version.h"并使用这些定义.

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"
...
Run Code Online (Sandbox Code Playgroud)

我没有尝试过MFC项目的这种技术.可能需要将VS_VERSION_INFO资源移动到您的.rc2文件(Visual Studio不会对其进行编辑).


Aar*_*her 1

在你的 application.rc 文件中有一个版本块。该块控制文件系统中显示的版本信息。

VS_VERSION_INFO VERSIONINFO
文件版本 1,0,0,1
产品版本 1,0,0,1

您可以通过编程方式更新此文件。确保将文件打开并保存为二进制文件。我们遇到过以文本形式进行编辑并且文件损坏的问题。