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

2022-01-12 00:00:00 windows svn mfc versioninfo

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

How do I go about programmatically updating the FILEVERSION string in an MFC app? I have a build process that I use to generate a header file which contains the SVN rev for a given release. I'm using SvnRev from http://www.compuphase.com/svnrev.htm to update a header file which I use to set the caption bar of my MFC app. Now I want to use this #define for my FILEVERION info.

最好的方法是什么?

推荐答案

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

An .rc file can #include header files just like .c files can. I have an auto-generated version.h file, which defines things like:

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

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

Then I just have my .rc file #include "version.h" and use those defines.

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

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

I haven't tried this technique with an MFC project. It might be necessary to move your VS_VERSION_INFO resource to your .rc2 file (which won't get edited by Visual Studio).

相关文章