Windows是否支持可执行文件版本信息中的其他自定义字段?

问题描述:

我正在写一些代码在拉撒路我想添加额外的信息,如FPC版本,Lazarus版本,Git提交等。Windows是否支持可执行文件版本信息中的其他自定义字段?

是否可以在项目中添加像这样的字段?

https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx的相关信息为标准模板。

Name 
Comments 
CompanyName 
FileDescription 
FileVersion 
InternalName 
LegalCopyright 
LegalTrademarks 
OriginalFilename 
PrivateBuild 
ProductName 
ProductVersion 
SpecialBuild 

还有像

#define VER_FILEVERSION    3,10,349,0 
#define VER_FILEVERSION_STR   "3.10.349.0\0" 

#define VER_PRODUCTVERSION   3,10,0,0 
#define VER_PRODUCTVERSION_STR  "3.10\0" 

#ifndef DEBUG 
#define VER_DEBUG     0 
#else 
#define VER_DEBUG     VS_FF_DEBUG 
#endif 

VS_VERSION_INFO VERSIONINFO 
FILEVERSION  VER_FILEVERSION 
PRODUCTVERSION VER_PRODUCTVERSION 
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 
FILEFLAGS  (VER_PRIVATEBUILD|VER_PRERELEASE|VER_DEBUG) 
FILEOS   VOS__WINDOWS32 
FILETYPE  VFT_DLL 
FILESUBTYPE  VFT2_UNKNOWN 
BEGIN 
    BLOCK "StringFileInfo" 
    BEGIN 
     BLOCK "040904E4" 
     BEGIN 
      VALUE "CompanyName",  VER_COMPANYNAME_STR 
      VALUE "FileDescription", VER_FILEDESCRIPTION_STR 
      VALUE "FileVersion",  VER_FILEVERSION_STR 
      VALUE "InternalName",  VER_INTERNALNAME_STR 
      VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR 
      VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR 
      VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR 
      VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR 
      VALUE "ProductName",  VER_PRODUCTNAME_STR 
      VALUE "ProductVersion", VER_PRODUCTVERSION_STR 
     END 
    END 

    BLOCK "VarFileInfo" 
    BEGIN 
     /* The following line should only be modified for localized versions.  */ 
     /* It consists of any number of WORD,WORD pairs, with each pair   */ 
     /* describing a language,codepage combination supported by the file.  */ 
     /*                  */ 
     /* For example, a file might have values "0x409,1252" indicating that it */ 
     /* supports English language (0x409) in the Windows ANSI codepage (1252). */ 

     VALUE "Translation", 0x409, 1252 

    END 
END 

示例代码是否可以添加自己的附加字段正如我上面所描述的,将显示在用户单击在Windows资源管理器或获取的文件通过程序中的FileVersionInfo函数。

+0

请澄清你的问题。 – Dai

+0

https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx –

+0

看看[显示应用标题,版本和公司](http:// wiki .freepascal.org/Show_Application_Title,_Version,_and_Company) – Abelisto

从对Custom field in file version in C++ project的回应中,可以通过在问题中的示例中向StringFileInfo块添加更多信息。该答案指出,信息应该在Windows资源管理器的文件属性对话框中可见,但我必须验证。