Configuration de l'application dans les informations d'un fichier exécutable Qt sur Windows
-
03-10-2019 - |
Question
Quelqu'un at-il un des conseils sur la configuration d'application les informations (ie. Clic droit sur .exe-> Propriétés) de Qt?
Je peux ajouter des chaînes de version arbitraires fichier de ressources Qt (de SCFQ) et les afficher. Mais la plupart des programmes d'installation Windows vérifier le numéro de version et je ne peux pas trouver un moyen Qt de la définition de ces champs autres que de maintenir manuellement un fichier séparé .rc
d'une certaine façon qui vous permet de mettre à jour ce à partir d'une version automatisée serait aussi bien!
La solution
Voici comment je le fais ... ajouter un fichier appelé resources.rc à votre projet avec le contenu:
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
et un fichier appelé version.h avec le contenu:
#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
et enfin à votre fichier .pro, ajouter: RC_FILE = resources.rc
. plates-formes non-Windows ne tiendra pas compte de la valeur si vous ne devez pas le préfixe avec win32:
.
Autres conseils
D'accord, deux ans après avoir été demandé ... mais peut-être quelqu'un trouvera utile ...
Essayez d'utiliser les variables suivantes qmake:
VERSION = 0.4.0.1
QMAKE_TARGET_COMPANY = company
QMAKE_TARGET_PRODUCT = product
QMAKE_TARGET_DESCRIPTION = description
QMAKE_TARGET_COPYRIGHT = copyright