В статье мы рассмотрим, как правильно задать версию файла в формате rc для приложения, написанного на Delphi. Мы также рассмотрим общую структуру файла версии и предложим альтернативное решение для тех, кто хочет более гибко управлять версией своего приложения.
Введение
Файл версии (version.rc) является важной частью приложения, так как он содержит информацию о версии приложения, его описании, названии компании-разработчика и другой полезной информации. В этой статье мы сосредоточимся на том, как правильно задать версию файла в формате rc для приложения, написанного на Delphi.
Структура файла версии
Файл версии имеет следующую общую структуру:
1 VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_FILEVERSION
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", VER_FILEVERSION_STR
VALUE "FileDescription", VER_FILEVERSION_STR
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", VER_FILEVERSION_STR
VALUE "LegalCopyright", VER_FILEVERSION_STR
VALUE "LegalTrademarks1", VER_FILEVERSION_STR
VALUE "LegalTrademarks2", VER_FILEVERSION_STR
VALUE "OriginalFilename", VER_FILEVERSION_STR
VALUE "ProductName", VER_FILEVERSION_STR
VALUE "ProductVersion", VER_FILEVERSION_STR
END
END
END
В этой структуре:
FILEVERSION и PRODUCTVERSION определяют версию файла и продукта соответственно.
FILEOS определяет операционную систему, для которой предназначено приложение.
FILETYPE определяет тип файла (в данном случае, приложение).
StringFileInfo блок содержит строковую информацию о файле, такую как название компании, описание файла, версию файла и другие атрибуты.
Каждая строка в блоке StringFileInfo имеет уникальный идентификатор, за которым следует значение строки.
Правильная настройка файла версии
В примере, приведенном в контексте, автор задает версию файла в формате rc, но информация о версии не отображается в исполняемом файле. Эта проблема может возникнуть, если не включить блок VarFileInfo в файле версии. Блок VarFileInfo является обязательным и служит индексом для блоков信息.
Ниже приведен правильный вариант файла версии, в котором включен блок VarFileInfo:
#define VER_FILEVERSION 1,2,3,4
#define VER_FILEVERSION_STR "1.02.03.04\0"
1 VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_FILEVERSION
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", VER_FILEVERSION_STR
VALUE "FileDescription", VER_FILEVERSION_STR
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", VER_FILEVERSION_STR
VALUE "LegalCopyright", VER_FILEVERSION_STR
VALUE "LegalTrademarks1", VER_FILEVERSION_STR
VALUE "LegalTrademarks2", VER_FILEVERSION_STR
VALUE "OriginalFilename", VER_FILEVERSION_STR
VALUE "ProductName", VER_FILEVERSION_STR
VALUE "ProductVersion", VER_FILEVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
В этом примере блок VarFileInfo содержит индекс перевода, который указывает на язык и кодовую страницу для блоков строковой информации. В данном случае, язык равен 1033 (английский) и кодовая страница равна 1252.
Альтернативное решение: использование Delphi-встроенных средств
Если вам нужно более гибко управлять версией своего приложения, вы можете использовать встроенные средства Delphi для управления версией. В Delphi вы можете задать версию файла в свойствах проекта, как показано на рисунке ниже:
В этом случае Delphi автоматически создаст файл версии для вас, и вы сможете управлять версией своего приложения, не редактируя файл rc вручную.
Заключение
В этой статье мы рассмотрели, как правильно задать версию файла в формате rc для приложения, написанного на Delphi. Мы также предложили альтернативное решение, использующее встроенные средства Delphi для управления версией приложения. Надеемся, что эта статья поможет вам правильно задать версию своего приложения и упростит процесс управления версией в будущем.
В статье рассматривается процесс настройки и управления информацией о версии для приложений, написанных на Delphi, через файл версии (version.rc), а также предлагается использовать встроенные средства Delphi для упрощения этого процесса.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS