我在装有Windows 10的计算机上使用Delphi 10.0 Seattle。
我们有一个包含多个可执行文件的系统。我们通过let appModule = new AppModule();
beforeEach(done => {
TestBed.configureTestingModule({
imports: appModule.imports,
declarations: appModule.declarations,
providers: [...appModule.providers,
{
provide: Http,
useClass: HttpMock,
},
{
provide: Router,
useClass: RouterMock,
}
]
});
文件使用版本信息:
.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
在我使用葡萄牙语在Windows机器上进行构建和安装后,我可以通过右键单击可执行文件,选择“属性”,然后选择“详细信息”来查看版本信息。
到目前为止,这并不是什么新鲜事,它显示了{$R VersionInfoFactor.res}
文件中的数据。
现在,如果我用另一种语言在Windows机器上安装相同的可执行文件,我将无法再查看此信息。
有人知道原因吗?
答案 0 :(得分:6)
您的资源脚本仅提供葡萄牙语版本信息,而不提供其他语言。所以,当然,非葡萄牙机器不会显示任何有意义的东西。
您需要提供多个StringFileInfo
块,每个块对应您支持的语言。你应该有一个美国英语的块,这是当没有提供特定语言的块时的后备。
您应按此顺序按Hierarchical Organization of Resources for Localization:
整理块在旁注中,您无需手动调用brcc32.exe
。如果在.rc
指令中包含{$R}
文件名,Delphi编译器可以为您执行此操作:
{$R VersionInfoFactor.res VersionInfoFactor.rc}