Configuración de información de la aplicación en un archivo ejecutable Qt en Windows
-
03-10-2019 - |
Pregunta
Alguien tiene una punta sobre la configuración de la información de la aplicación (es decir. Click derecho en .exe-> propiedades) de Qt?
puedo añadir versión cadenas arbitrarias a archivo de recursos Qt (QRC) y mostrarlos. Pero la mayoría de los instaladores de Windows comprobar el número de versión y no puedo encontrar una manera de establecer Qt estos campos aparte de mantener manualmente un archivo separado .RC
Algunos manera que te permite actualizar esto de una construcción automatizado también estaría bien!
Solución
Así es como lo hago ... añadir un archivo llamado resources.rc a su proyecto con el contenido:
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
y un archivo llamado version.h con el contenido:
#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
y por último a su archivo .pro, añadir: RC_FILE = resources.rc
. plataformas no Windows ignorará el valor de lo que no tiene como prefijo win32:
.
Otros consejos
De acuerdo, dos años después de haber sido preguntó ... pero tal vez alguien le resultará útil ...
Trate de usar las siguientes variables qmake:
VERSION = 0.4.0.1
QMAKE_TARGET_COMPANY = company
QMAKE_TARGET_PRODUCT = product
QMAKE_TARGET_DESCRIPTION = description
QMAKE_TARGET_COPYRIGHT = copyright
Más información aquí .