因此,产品管理部门已下令,我们的软件的版本号应包含3组数字,而不是通常的4组数字(例如1.2.3而不是1.2.3.4)
在“关于”对话框和UI的其他位置可以轻松完成此操作,但是Windows属性存在问题。
当我将VERSIONINFO块中的值更改为:
FILEVERSION 1,2,3
PRODUCTVERSION 1,2,3
VALUE "FileVersion", "1.2.3"
VALUE "ProductVersion", "1.2.3"
我最终在exe的Windows 7的“属性”>“详细信息”选项卡中获得以下内容:
文件版本:1.2.3.0
产品版本:1.2.3
将值全部更改为不同表示“文件版本”取自FILEVERSION,因此始终格式化为4位数字组值,而“产品版本”取自“ProductVersion”。
有什么方法可以指定应从“FileVersion”字符串值中获取“文件版本”吗?如果删除FILEVERSION块,则最终会得到0.0.0.0的“文件版本”。
我通过创建一个空的Win32控制台应用程序,然后添加默认版本资源,在VS2010中重现了此行为:
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,1
PRODUCTVERSION 1,0,2
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904b0"
BEGIN
VALUE "CompanyName", "TODO: <Company name>"
VALUE "FileDescription", "TODO: <File description>"
VALUE "FileVersion", "1.0.3"
VALUE "InternalName", "VersionT.exe"
VALUE "LegalCopyright", "Copyright (C) 2012"
VALUE "OriginalFilename", "VersionT.exe"
VALUE "ProductName", "TODO: <Product name>"
VALUE "ProductVersion", "1.0.4"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1200
END
END
导致相同的问题:
properties http://media.use.com/images/s_1/4ba4e5b1b235179b1c9a.jpg
该图像可能很小,所以我只确认它说
文件版本1.0.1.0
产品版本1.0.4
在我告诉产品管理这是我们能做的最好的事情之前,是否有任何方法可以让Windows显示“FileVersion”字符串值呢?我已经阅读了MSDN上的VERSIONINFO文档,看不到我可以设置的任何标志。
最佳答案
在构建和安装this shell extension I found at CodeProject之后,似乎这是由于Windows 7仅显示了versioninfo属性的一个子集,所以我无能为力对其进行更改。 FileVersion字符串存在于exe中,只是它没有显示在默认属性对话框中。
关于visual-studio-2010 - Windows属性中的"File version"是FILEVERSION而不是"FileVersion",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10977836/