Настройка информации о приложении в исполняемом файле QT в Windows

StackOverflow https://stackoverflow.com/questions/2784697

Вопрос

У кого-нибудь есть советы по установке информации о приложении (т. Е. Щелкните правой кнопкой мыши на .exe-> Свойства) от Qt?

Я могу добавить струны произвольной версии в файл ресурсов Qt (QRC) и отображать их. Но большинство установщиков Windows проверяют номер версии, и я не могу найти способ установки этих полей, кроме вручную, поддерживая отдельный файл .rc

Какой-то способ обновить это из автоматической сборки, также было бы хорошо!

Это было полезно?

Решение

Вот как я это делаю ... Добавить файл под названием 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. Отказ Платформы без окон будут игнорировать значение, поэтому вам не нужно префикс win32:.

Другие советы

Хорошо, два года после того, как спросили ... Но, может быть, кто-то найдет это полезным ...

Попробуйте использовать следующие переменные QMake:

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

Больше информации здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top