2009-08-10 2 views
1

У меня есть общий пакет времени выполнения, который я использую для поддержки приложения, которое использует пакеты в качестве плагиновой системы. Я включил несколько сторонних блоков в общий пакет, чтобы уменьшить количество BPL, которые должны быть распределены.Предотвращение изменения IDE приложения «требует»

У Delphi, кажется, есть некоторые головные боли с этой настройкой, изредка обновляя только файл DCP в области «общего DCP» (C: \ Users \ Public \ Documents \ RAD Studio \ 6.0 \ Dcp на моей машине), а не тот, который находится в каталоге вывода DCP (как указано в опциях проекта).

Это не моя главная проблема, хотя ... Моя главная проблема заключается в том, что Delphi подбрасывает этот диалог довольно часто:

Delphi Change Package Dialog

(это только пример, это происходит из-за другие пакеты, которые я также установили)

Теперь, в Delphi 2009, по крайней мере, когда я отменил это диалоговое окно (и нажмите «Да» в появившемся диалоговом окне), это ничего не меняет. Предыдущие версии все равно продолжали бы выполнять мой файл dpk.

В настоящее время я не могу получить проклятое диалоговое окно, чтобы перестать подниматься. Пакет задается как пакет времени выполнения, у него нет пакетов «требуется» (кроме VCL). Я думал, что это облизал месяц назад, но он снова начал появляться.

В DPK-файл или файл DPROJ никаких изменений.

Я знаю, почему это происходит ... Delphi пытается сохранить этот пакет внутренне совместимым с другими пакетами в среде IDE, на всякий случай, если я его установлю. Я хотел бы остановить работу IDE.

Есть ли у кого-нибудь предложения?

N @

+0

Извините за задержку в проверке ответов, я был в театре, владеющем огнями в течение последних нескольких дней! – Nat

ответ

4

Вы должны явно ссылаться на каждый из блоков, указанных в диалоге в содержит раздел файла ДПК. В диалоговом окне отображаются только те единицы, которые указаны неявно (= не указано в содержит), и предлагает , требующий пакета, из которого они первоначально принадлежат.

+0

+1. Кроме того, найдите указатели, чтобы избежать этого в этом ответе: http://stackoverflow.com/questions/1215664/is-implicitly-imported-always-a-bad-thing-in-delphi-packages/1216131#1216131 –

+0

Спасибо, Уве! Таким образом, в основном, если пакет установлен, который содержит один из блоков, которые явно не указаны *, требуется пакет ... вместо того, чтобы предоставить вам список единиц, с которыми он неявно связан (как в этом случае как обычно). – Nat

+0

Я думаю, что единицы также связаны неявным образом в первую очередь, но предлагается использовать эти пакеты.Если вы нажмете OK, это будет сделано. –

2

Если delphi требует этот пакет, это потому, что вы используете некоторые устройства, которые не находятся в самом пакете или в необходимых пакетах.

Кстати, если Delphi предложит вам использовать этот пакет, так как Delphi «знает» пакет с этими единицами, который вам нужен, и вы не декларируете, также пакет будет скомпилирован с импортированными им импликациями «implicity». Это может привести к непоследовательному приложению, если вы работаете с пакетами. Помните, что устройство можно загружать только один раз в приложении.

Смежные вопросы