rtl90.bpl не был найден, как мне включить его в мое 32-битное приложение Delphi 2005 win?

Программное обеспечение, которое я поддерживал, время от времени не работает на разных компьютерах. Обычно это новые версии Win7.

Сообщение об ошибке "это приложение не удалось запустить, потому что rtl90.bpl не был найден..."

Чтобы устранить проблему, у меня есть поддержка ПК, скопируйте файл rtl90.bpl в каталог system32 пользователей, однако я хотел бы убедиться, что эта ошибка больше не возникает.

Я гуглил и нашел следующую ссылку rtl90.bpl проблема

Мой вопрос заключается в следующем: опция "Построить с помощью пакетов времени выполнения" уже выбрана в разделе "Параметры проекта" для этой программы и, похоже, не имеет никакого значения для пользователей, получающих проблему.

Нужно ли специально добавлять отсутствующий файл rtl90.bpl в проект?

Обратите внимание, что я очень мало знаю о программировании на Delphi.

2 ответа

Решение

Поскольку вы отмечены вариант Build with runtime packages в вашем проекте, конечный exe-файл потребуется развернуть с некоторыми дополнительными файлами bpl. Чтобы избежать этих зависимостей, вы должны снять эту опцию и построить свой проект. Теперь ваш exe будет больше, но без зависимостей.

Этот пакет является пакетом времени выполнения, содержащим VCL. Предположительно, вам также необходимо развернуть rtl90.bpl для RTL и, возможно, некоторые другие. Включив пакеты времени выполнения, вы обещаете развернуть те пакеты, где исполняемый файл сможет их найти.

У вас есть 3 основных варианта:

  1. Разверните пакеты в месте, которое содержится в переменной PATH. Обычно это означает изменение PATH. Вы никогда не должны писать в системный каталог. Он принадлежит системе, и вы должны уважать это.
  2. Разверните пакеты в том же каталоге, что и исполняемый файл.
  3. Отключите пакеты времени выполнения и, следовательно, создайте отдельный автономный исполняемый файл. Код RTL/VCL будет статически связан с вашим исполняемым файлом.

Вариант 1 плох, на мой взгляд. Полагаться на переменную PATH и возможность ее изменения хрупко. Вариант 2 работает, но кажется довольно бессмысленным по сравнению с вариантом 3. Вы выбираете больше файлов и файлов большего размера, когда выбираете 2, поэтому зачем его выбирать.

В заключение я рекомендую вариант 3. Статически связать весь код RTL/VCL с исполняемым файлом.

Единственная ситуация, в которой выигрывает вариант 2, на мой взгляд, это когда у вас есть несколько связанных исполняемых файлов, которые все развернуты в одном и том же каталоге. В этой ситуации совместное использование кода RTL/VCL может иметь смысл.

Другие вопросы по тегам