Festlegen einer Anwendungsinformation in einer Qt ausführbaren Datei unter Windows
-
03-10-2019 - |
Frage
Jeder hat eine Spitzen hat auf die Anwendung Info-Einstellung (dh. Die rechte Maustaste auf .exe-> Eigenschaften) von Qt?
kann ich beliebige Version Strings Qt-Ressourcendatei (QRC) hinzufügen und sie anzuzeigen. Aber die meisten Windows Installer überprüfen Sie die Versionsnummer, und ich kann nicht eine Qt Art und Weise der Einstellung diese Felder außer manuell Aufrechterhaltung einer separaten RC-Datei
findenEinige Art und Weise, wie Sie dies von einem automatisierten Build aktualisieren kann auch schön sein!
Lösung
Hier ist, wie ich es tun ... Eine Datei resources.rc zu einem Projekt mit dem Inhalt aufgerufen:
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
und eine Datei version.h mit dem Inhalt genannt:
#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
und schließlich zu Ihrem .proDatei hinzu: RC_FILE = resources.rc
. Nicht-Windows-Plattformen den Wert ignorieren, so dass Sie es nicht mit win32:
Präfix muss.
Andere Tipps
Okay, zwei Jahre nach gefragt zu werden ... aber vielleicht wird jemand findet es sinnvoll, ...
Versuchen Sie die folgenden Qmake Variablen zu verwenden:
VERSION = 0.4.0.1
QMAKE_TARGET_COMPANY = company
QMAKE_TARGET_PRODUCT = product
QMAKE_TARGET_DESCRIPTION = description
QMAKE_TARGET_COPYRIGHT = copyright
Weitere Informationen href="http://qt-project.org/forums/viewthread/16520">.