Chr*_*ris 5 visual-studio-2010 visual-c++
所以产品管理部门已经下令我们的软件应该有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"
Run Code Online (Sandbox Code Playgroud)
我最终在Windows 7的属性>详细信息选项卡中为exe执行以下操作:
文件版本: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
Run Code Online (Sandbox Code Playgroud)
导致同样的问题: 属性http://media.use.com/images/s_1/4ba4e5b1b235179b1c9a.jpg
这个图像可能会很小,所以我只是确认它是文件版本1.0.1.0产品版本1.0.4
在我告诉产品管理这是我们能做的最好之前,有没有办法让Windows显示"FileVersion"字符串值呢?我已经阅读了MSDN上的VERSIONINFO文档,并且看不到我可以设置的任何标志来执行此操作.
在构建并安装这个 shell 扩展后,我在 CodeProject 发现,这似乎是由于 Windows 7 仅显示 versioninfo 属性的子集,并且我无法对其进行更改。FileVersion 字符串存在于 exe 中,只是不显示在默认属性对话框中。
| 归档时间: |
|
| 查看次数: |
4371 次 |
| 最近记录: |