在Windows上的Qt可执行文件中设置应用程序信息

任何人都有提示从Qt设置应用程序信息(即右键单击.exe->属性)?

我可以添加任意版本的string到Qt资源文件(qrc)并显示它们。 但大多数Windows安装程序检查版本号,我找不到一个Qt的方式来设置这些字段,而不是手动维护一个单独的.RC文件

某种方式可以让你从一个自动化版本更新这也是很好的!

Solutions Collecting From Web of "在Windows上的Qt可执行文件中设置应用程序信息"

以下是我如何做…使用以下内容将名为resources.rc的文件添加到项目中:

IDI_ICON1 ICON DISCARDABLE "res/app.ico" #include <windows.h> #include "version.h" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION 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 VALUE "Translation", 0x409, 1252 END END 

和一个名为version.h的文件,其内容如下:

 #ifndef VERSION_H #define VERSION_H #define VER_FILEVERSION 1,0,0,0 #define VER_FILEVERSION_STR "1.0.0.0\0" #define VER_PRODUCTVERSION 1,0,0,0 #define VER_PRODUCTVERSION_STR "1.0\0" #define VER_COMPANYNAME_STR "Your Organization" #define VER_FILEDESCRIPTION_STR "CoolApplication" #define VER_INTERNALNAME_STR "CoolApplication" #define VER_LEGALCOPYRIGHT_STR "Copyright © 2010 Your Organization" #define VER_LEGALTRADEMARKS1_STR "All Rights Reserved" #define VER_LEGALTRADEMARKS2_STR VER_LEGALTRADEMARKS1_STR #define VER_ORIGINALFILENAME_STR "coolapplication.exe" #define VER_PRODUCTNAME_STR "CoolApplication" #define VER_COMPANYDOMAIN_STR "example.org" #endif // VERSION_H 

最后添加到.pro文件中,添加: RC_FILE = resources.rc 非Windows平台将忽略这个值,所以你不需要用win32:前缀win32:

好吧,被问了两年后…但也许有人会觉得它有用…

尝试使用下面的qmake变量:

 VERSION = 0.4.0.1 QMAKE_TARGET_COMPANY = company QMAKE_TARGET_PRODUCT = product QMAKE_TARGET_DESCRIPTION = description QMAKE_TARGET_COPYRIGHT = copyright 

更多信息在这里 。