Добрый день.
Есть проект, состоящий из exe и кучи динамически загружаемых *.bpl. Стоит крыжик Build with runtime packages, но там прописана моя BPL. Этаже bpl прописана во всех остальных bpl в секции requires. Проблема в следующее при загрузке первой bpl никаких проблем не возникает, а вот при загрузке следующей выдает ошибку «Cannot load package 'Bpl' It contains unit 'Юнит из общей bpl' which is also contained in package ‘Тот который загрузился первым’».
Где я ошибся?
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
По всей вероятности у вас в разделе contains в обоих проектах есть один и тот же модуль. Преставьте себе ситуацию, что Вы откомпилировали главную BPL, потом изменили некий общий модуль MainModule, затем откомпилировали другую BLP. Потом Вы выполняете некоторую процедуру (ту которую правили) общего модуля в самом приложении, какую версию по вашему надо использовать?
package MainBPL;
...
requires
vcl50;
contains
MainModule in '..\MainModule.pas',
...
package NewBPL;
...
requires
MainBPL;
contains
MainModule in '..\MainModule.pas', // это неправильно!
// достаточно того, что в разделе requires
// указана MainBPL, которая использует
// этот модуль
NewModule in '..\NewModule.pas',
...
Т.е. каждый модуль в разделе contains должен упоминаться только один раз!
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.