编程更新FILEVERSION在MFC应用程序瓦特/ SVN版本号(Programmatically

2019-07-29 17:48发布

我该如何去有关以编程方式更新FILEVERSION字符串中的MFC应用程序? 我有用于生成包含SVN转一个给定版本的头文件生成过程。 我使用的是从SvnRev http://www.compuphase.com/svnrev.htm更新,我用它来设置我的MFC应用程序的标题栏的头文件。 现在,我想用这个#定义为我的FILEVERION信息。

什么是前进的最好方式?

Answer 1:

一个.rc文件可以#include头文件一样.c文件即可。 我有一个自动生成version.h的文件,它定义了喜欢的东西:

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

然后我有我.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"
...

我没有尝试过用MFC项目这种技术。 这可能需要您的移动VS_VERSION_INFO资源,您.rc2文件(不会由Visual Studio被编辑)。



Answer 2:

没有足够的积分尚未就此发表评论,但无论解决方案,您选择记住FILEVERSION场只能支持一个短整型。 在我们的情况,我们的SVN版本已经超过这一点,并导致我们FILEVERSION一个无效的版本号。



Answer 3:

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

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
的ProductVersion 1,0,0,1

您可以通过编程更新此文件。 确保打开和保存该文件作为二进制文件。 我们曾在那里编辑完成的文本和文件被损坏的问题。



Answer 4:

更改VS_VERSION_INFO将反映当你在资源管理器中右键单击,只看到属性。

如果你想显示在标题栏中的当前SVN版本号,我建议:

  • 有一个脚本得到的版本号和生成version.h文件,只是
#define SVN_VERSION_NO  xxx 
  • 你的项目包括这个version.h中,并使用该数量的字幕显示。


Answer 5:

也许这可以帮助: 版本控制控制的构建



文章来源: Programmatically updating FILEVERSION in a MFC app w/SVN revision number