Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Почему изменение информации о версии в проекте Delphi через файл `*.dproj` не приводит к ожидаемому результату при сборке без IDE?

Delphi , Программа и Интерфейс , IDE и Компилятор

Руководство по изменению информации о версии в проектах Delphi

Информация о версии является ключевым атрибутом для любого программного продукта, поскольку она позволяет пользователям и системе отслеживать изменения и обновления. В среде разработки Delphi, информация о версии обычно задается через встроенные инструменты IDE. Однако, если вы хотите вручную изменить версию программы в проекте Delphi без использования IDE, вы столкнетесь с определенными сложностями.

Проблема

Пользователи часто сталкиваются с проблемой, когда изменение информации о версии в файле *.dproj не приводит к обновлению версии в итоговом исполняемом файле *.exe. Несмотря на то, что в файле *.dproj явно указаны параметры версии, при сборке проекта через командную строку с использованием MSBuild, результирующий исполняемый файл не содержит информацию о версии.

Пример кода из файла *.dproj выглядит следующим образом:

<VersionInfo>
  <VersionInfo Name="IncludeVerInfo">True</VersionInfo>
  <VersionInfo Name="AutoIncBuild">False</VersionInfo>
  <VersionInfo Name="MajorVer">1</VersionInfo>
  <VersionInfo Name="MinorVer">2</VersionInfo>
  <VersionInfo Name="Release">3</VersionInfo>
  <VersionInfo Name="Build">456</VersionInfo>
  ...
</VersionInfo>
<VersionInfoKeys>
  ...
  <VersionInfoKeys Name="FileVersion">1.2.3.456</VersionInfoKeys>
  ...
  <VersionInfoKeys Name="ProductVersion">1.2.3.456</VersionInfoKeys>
  ...
</VersionInfoKeys>

Сборка проекта осуществляется через командную строку с вызовом MSBuild:

call rsvars.bat
MSBuild.exe blabla.dproj /p:configuration=release

В результате получаем исполняемый файл без информации о версии, в то время как при сборке через IDE все работает корректно.

Решение проблемы

Подтвержденный ответ

Проблема заключается в том, что информация о версии в Delphi хранится в ресурсах проекта, а именно в файлах RC и RES. Файл *.dproj содержит конфигурационные настройки, которые используются для генерации этих ресурсов. При изменении настроек в *.dproj, необходимо также обновить соответствующие ресурсные файлы, поскольку MSBuild по умолчанию не будет их пересоздавать.

Чтобы решить проблему, необходимо:

  1. Изменить настройки информации о версии в файле *.dproj.
  2. Удалить соответствующий файл ресурсов *.res, чтобы при сборке проект автоматически сгенерировал его с новыми настройками.
  3. Запустить процесс сборки проекта с помощью MSBuild.

Альтернативный ответ

Как альтернативный подход, можно использовать сторонние скрипты для генерации файла ресурсов *.rc, который затем компилируется и включается в процесс сборки проекта Delphi. Это позволяет более тонко контролировать процесс обновления информации о версии.

Пример кода

Пример кода, который может быть использован для генерации файла ресурсов *.rc, выглядит следующим образом:

FILEVERSION 1,2,3,456
PRODUCTVERSION 1,2,3,456
LANGUAGE 1049,1251
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "CompanyName", "MyCompany"
            VALUE "FileDescription", "MyFileDescription"
            VALUE "FileVersion", "1.2.3.456"
            VALUE "InternalName", "MyInternalName"
            VALUE "LegalCopyright", "Copyright 2023"
            VALUE "OriginalName", "MyOriginalName"
            VALUE "ProductName", "MyProductName"
            VALUE "ProductVersion", "1.2.3.456"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 1049, 1251
    END
END

Этот код должен быть сохранен в файле *.rc, который затем компилируется в ресурсный файл *.res и используется в процессе сборки проекта.

Заключение

Изменение информации о версии в проектах Delphi без использования IDE требует дополнительных действий, таких как обновление ресурсных файлов. Следуя инструкциям выше, вы сможете успешно обновить версию вашего приложения, даже не запуская IDE.

Создано по материалам из источника по ссылке.

Руководство по ручному изменению информации о версии в проектах Delphi без использования IDE.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: IDE и Компилятор ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 15:45:33/0.0060300827026367/0