我正在尝试配置我们的资源构建以在命令行上获取版本信息
rc.exe /DVERCSV=8,0,0,0 /DVERDOT="8.0.0.0"
我以为它开始工作,但似乎有一些小故障。
在资源管理器中查看时,我似乎遇到了损坏 - 在 ProductVersion 字符串中显示垃圾,但是打开 exe 或 res 文件会正确显示字符串值
但是,如果将值直接存储在 rc 中,或者在 visualstudio 资源编辑器中将其编辑为“相同”值(进行细微更改以保存)(编译为 .res 之后),则资源管理器能够显示所需的值
VS_VERSION_INFO VERSIONINFO
FILEVERSION VERCSV
PRODUCTVERSION VERCSV
FILEFLAGSMASK 0x17L
FILEFLAGS 0x0L
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "XXX Application"
VALUE "FileVersion", VERDOT
VALUE "InternalName", "XXX"
VALUE "LegalCopyright", "Copyright (C) 2010"
VALUE "OriginalFilename", "XXX.exe"
VALUE "ProductName", "XXX Application"
VALUE "ProductVersion", VERDOT
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
我已经尝试了很多其他的事情来解决
- 缺少尾随空?
- 值“ProductVersion”,VERDOT“\0”
- \DVERDOT="8.0.0.0\0"
- 命令
- 其他翻译
- 代码页的更改
- #pragma code_page(1200)
- 文件中的二级#define
- 使用 #VERDOT 在字符串周围添加引号
- 改为使用 CSV 值