Как обеспечить правильное «требуемое» определение пакета времени выполнения Delphi из пакета времени разработки при создании установщика - PullRequest
2 голосов
/ 01 августа 2011

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

Я хочу обеспечить самое чистое развертывание, поэтому я понимаю, что многие модули войдут в пакет времени выполнения, и со временем я смогу развернуть его с помощью «сборки с пакетами времени выполнения», так что это все хорошо.Тем не менее, часто для пакета времени разработки требуется пакет времени выполнения, и именно здесь у меня возникают проблемы.Обычно я создаю группу проектов с проектом пакета времени выполнения (xxx-RXE), за которым следует проект пакета времени разработки (xxx-DXE).Делай сборку все и все нормально.Я развертываю оба пакета в форме BPL, DCP и DCU по собственному пути к библиотеке и устанавливаю пакет времени разработки в IDE, используя реестр .Путь к библиотеке затем добавляется в настройки среды.Когда я открываю Delphi (это верно как для D7, так и для XE), я получаю «Невозможно загрузить пакет XXXX-DXE, пакет библиотеки xxx-RXE.bpl не найден.Если я изменяю, изменяя пакет времени разработки, удаляя xxx-RXE.dcp из 'require' и заменяя его непосредственно на модули, все в порядке.

Я пытаюсь не совать что-либо в папки Delphi,так что структура моего проекта такая (показывается только XE, аналогично D7).Для пакетов заданы выходные единицы, для bpl и dcp - ".. \ Library \ Delphi15", для всех пакетов задан путь поиска ".. \ Source", а для пакета времени разработки - дополнительный путь поиска ".. \ Library\ Delphi15 "(чтобы найти требуемый пакет среды выполнения).

\Root
  \Packages
    xxx.groupproj
    xxx-RXE.dpk
    xxx-DXE.dpk 
  \Library
    \Delphi15
      (output of all dcus, dcp's, bpl's etc. Manually added *.res, *.inc and *.dfm's).     
  \Source
    (The original project source files as used by the packages).

Ни одна из перечисленных выше папок не используется Delphi, я ничего не делаю с Delphi IDE, пока мой установщик не создаст следующую папку развертывания:

c:\Program Files\xxx\Library\Delphi15

(содержит все BPL, DCP, DCU и т. Д., Это также путь, введенный в путь к библиотеке среды).

Так что мне неясно, что есливсе файлы находятся в этой папке с указанием пути к ней, почему они не могут их увидеть?

Спасибо за любую помощь.

Ответы [ 3 ]

3 голосов
/ 01 августа 2011

Просто чтение «Не удается загрузить пакет XXXX-DXE, пакет библиотеки xxx-RXE.bpl не найден» вызвало плохие воспоминания.Обычно я получаю эту ошибку, когда путь, содержащий DCP (и / или BPL?), Не содержится в переменной окружения PATH Windows .

Когда установленный пакет ссылается на другой пакет, обычное «поведение поиска в библиотеке Windows» для этого ссылочного пакета запускается (при запуске Delphi). В настоящее время конфигурации пути Delphi не активны .Таким образом, вашему установщику необходимо также изменить переменную PATH env (или скопировать файл в каком-то месте).

2 голосов
/ 01 августа 2011

«библиотечный пакет xxx-RXE.bpl не найден» может вводить в заблуждение.Я считаю, что на самом деле это означает, что LoadPackage потерпел неудачу, по некоторым причинам.Это может быть вызвано зависимым пакетом, отсутствующим в пути Windows.

2 голосов
/ 01 августа 2011

Я почти уверен, что DCP должен находиться в папке DCP Delphi.На моей машине с Delphi 2010 и Windows 7 он находится в C:\Users\Public\Documents\Rad Studio\7.0\Dcp.

При поиске в реестре этот путь находится в HKCU\Software\Codegear\BDS\7.0\Library со значением Package DCP Output.Конечно, вам придется расширить строку, потому что она там $(BDSCOMMONDIR)\Dcp.

. Я бы также поместил BPL времени выполнения в расположение по умолчанию в Delphi, что опять же (для меня) равно C:\Users\Public\Documents\Rad Studio\7.0\Dcp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...