我在Windows 10的机器上使用Delphi10.0西雅图。
我们有一个有几个可执行文件的系统。我们通过.rc文件使用版本信息:
1 VERSIONINFO
FILEVERSION 18,2,0,1660
PRODUCTVERSION 18,2,0,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VS_FF_SPECIALBUILD|VS_FF_PRERELEASE)
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "041604E4"
BEGIN
VALUE "CompanyName", "BLA BLA BLA\0"
VALUE "FileDescription", "BLA BLABLA - DESCRICAO\0"
VALUE "FileVersion", "18.2.0.1660\0"
VALUE "InternalName", "nomexecutavel.exe\0"
VALUE "LegalCopyright", "Copyright 2018\0"
VALUE "LegalTrademarks", "BLA BLA BLA é marca registrada\0"
VALUE "OriginalFilename", "nomeexecutavel.exe\0"
VALUE "ProductName", "nomedoproduto\0"
VALUE "ProductVersion", "18.2.0\0"
VALUE "SpecialBuild", "Para Homologação\0"
VALUE "GitRevision", "790d79ee92af023d6beac953072c45b0385df17f\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0416, 1252
END
END这个.rc文件是通过brcc32.exe编译的。
在项目文件中,加载由.RES生成的brcc32文件信息。
{$R VersionInfoFactor.res}在用葡萄牙语在Windows机器上进行编译和安装之后,我可以通过右键单击可执行文件,选择Properties,然后选择Details来查看版本信息。
到目前为止,这并不是什么新鲜事,它显示了.rc文件中通知的数据。

现在,如果我用另一种语言在Windows机器上安装相同的可执行文件,则无法再查看此信息。
有人知道原因吗?

发布于 2018-02-14 16:03:24
您的资源脚本只为葡萄牙语而不是其他语言提供版本信息。所以,当然,一个非葡萄牙的机器不会显示任何有意义的东西。
您需要提供多个StringFileInfo块,每个要支持的语言都需要一个块。你应该有一个美国英语块,这是当没有提供一个特定语言块时的退路。
您应该按照这个顺序组织块,按资源本地化的分级组织排列。
另外,您不需要手动调用brcc32.exe。如果在.rc指令中包含{$R}文件名,则Delphi编译器可以为您执行此操作:
{$R VersionInfoFactor.res VersionInfoFactor.rc}https://stackoverflow.com/questions/48789290
复制相似问题