在带有 SVN 修订号的 MFC 应用程序中以编程方式更新 FILEVERSION
如何以编程方式更新 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.
What's the best way to proceed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
还没有足够的点来评论,但无论您选择哪种解决方案,请记住 FILEVERSION 字段只能支持短整数。 在我们的情况下,我们的 SVN 版本已经高于此值,并导致我们的 FILEVERSION 中的版本号无效。
Don't have enough points to comment yet, but whatever solution you choose keep in mind that FILEVERSION fields can only support a short integer. In our situation, our SVN revision was already above this and resulted in an invalid revision number in our FILEVERSION.
在你的 application.rc 文件中有一个版本块。 该块控制文件系统中显示的版本信息。
您可以通过编程方式更新此文件。 确保将文件打开并保存为二进制文件。 我们遇到过以文本形式进行编辑并且文件损坏的问题。
In your application.rc file there is a version block. This block controls the version info displayed in the filesystem.
You can programmatically update this file. Make sure to open and save the file as binary. We have had issues where edits are done as text and the file gets corrupted.
当您在资源管理器中右键单击该文件并仅查看属性时,更改
VS_VERSION_INFO
将会反映出来。如果你想在标题栏中显示当前的 SVN 修订号,我建议:
Changing
VS_VERSION_INFO
will reflect when you right click on the file in Explorer and see properties only.If you want to show the current SVN revision number in the Caption bar, i would suggest:
.rc
文件可以#include
头文件,就像.c
文件一样。 我有一个自动生成的version.h
文件,它定义了以下内容:然后我只有我的
.rc
文件#include "version.h" 并使用这些定义。
我还没有在 MFC 项目中尝试过这种技术。 可能需要将
VS_VERSION_INFO
资源移动到.rc2
文件(Visual Studio 不会对其进行编辑)。An
.rc
file can#include
header files just like.c
files can. I have an auto-generatedversion.h
file, which defines things like:Then I just have my
.rc
file#include "version.h"
and use those defines.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).也许这会有所帮助:版本控制构建
Maybe this can be helpful: Versioning Controlled Build