My Windows Qt widgetsアプリケーションは、バージョン情報ファイルに "version.h"ファイルと "RC"ファイルを使用して、実行ファイルに対してバージョン情報文字列を取り込みます。QtおよびWindows実行ファイルのバージョン情報
version.hをこのようになります...
#ifndef VERSION_H
#define VERSION_H
#define VERSION_MAJOR 1
#define VERSION_MINOR 0
#define VERSION_BUILD 3
#define VER_FILEVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_BUILD,0
#define STR_FILEVERSION VERSION_MAJOR##"."##VERSION_MINOR##"."VERSION_BUILD##".0"
// Keep the product version as fixed
#define VER_PRODUCTVERSION 1.0.0.0
#define STR_PRODUCTVERSION "1.0.0.0\0"
#define STR_COMPANYNAME "MyCompany"
#define STR_FILEDESCRIPTION "MyFile"
#define STR_INTERNALNAME "MyFile"
#define STR_LEGALCOPYRIGHT "Copyright © 2017 MyCompany"
#define STR_LEGALTRADEMARKS1 "All Rights Reserved"
#define STR_LEGALTRADEMARKS2 STR_LEGALTRADEMARKS1
#define STR_ORIGINALFILENAME "MyApp.exe"
#define STR_PRODUCTNAME "MyApp"
#define STR_COMPANYDOMAIN "mywebsite.com"
#endif // VERSION_H
そして、RCファイルは次のように探して:
IDI_APP_ICON ICON DISCARDABLE "MyApp.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", STR_COMPANYNAME
VALUE "FileDescription", STR_FILEDESCRIPTION
VALUE "FileVersion", STR_FILEVERSION
VALUE "InternalName", STR_INTERNALNAME
VALUE "LegalCopyright", STR_LEGALCOPYRIGHT
VALUE "LegalTrademarks1", STR_LEGALTRADEMARKS1
VALUE "LegalTrademarks2", STR_LEGALTRADEMARKS2
VALUE "OriginalFilename", STR_ORIGINALFILENAME
VALUE "ProductName", STR_PRODUCTNAME
VALUE "ProductVersion", STR_PRODUCTVERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
万全を期すために、 ".PRO" ファイルには、内部にこのラインを持っています:
RC_FILE = MyApp.rc
これはすべて正常に動作しているようです:exeを右クリックして詳細タブに移動すると、バージョン情報が表示されます結合されたversion.hとRCファイルの他のすべての文字列を返します。
ただし、VERSION_XXX #define値のいずれかを増やしてアプリケーションをビルドすると、報告された「ファイルバージョン」が変更されていないことがわかりました - バージョンを再構築するときのみ変化する。
バージョン情報(主にVERSION_BUILD現時点)を増やすたびに完全な再構築をしたくないので、exeファイルが更新されるたびにこの情報を更新するには何が必要なのでしょうか建てられた?