我一直在将旧的Delphi 2007代码升级到Delphi XE8,在那里我观察到程序版本信息的非常奇怪的行为。
以下是我用于使用测试项目编译的Version.rc文件。
1 VERSIONINFO
FILEVERSION 0,0,0,0
PRODUCTVERSION 0,0,0,3
FILEOS 0x4
FILETYPE 0x2
{
BLOCK "StringFileInfo"
{
BLOCK "080904E4"
{
VALUE "CompanyName", "ABC Inc\000"
VALUE "FileDescription", "Version Testing\000"
VALUE "FileVersion", "0.0.0.0\000"
VALUE "ProductName", "VERT001\000"
VALUE "ProductVersion", "A003\000"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0809 0x04E4
}
}
当我从Windows 8.1机器上查看版本信息时,我得到了这个细节:
当我从Windows Server 2012查看版本信息时,我得到了这个细节:
最初我虽然可能是FILEOS参数的问题,但我将其更改为VOS_NT_WINDOWS32甚至是VOS_NT但是它没有改变任何东西。
使用Delphi 2007编译时,相同的测试项目在操作系统上正确显示版本详细信息。
最近有没有人面临过类似的问题?
答案 0 :(得分:3)
在David的帮助下,我发现该问题属于dproj文件。当我指定<VerInfo_IncludeVerInfo>false</VerInfo_IncludeVerInfo>
时,VersionTest.exe开始在操作系统上显示正确的版本。