我一直在将旧的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编译的相同测试项目可以在两个操作系统上正确显示版本细节。
最近有人遇到过类似的问题吗?
{$R *.res}
替换为{$R MyProjectName.res}
,我认为这很重要。 - David Heffernandpr
文件包含一个过时的.res
文件。在Win7下一切都很好,但在Win10下不行。 - Edwin Yip