Суффикс автоматического именования пакетов (BPL)

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

Это достаточно просто и хорошо работает, вплоть до тех пор, пока вы не захотите поддерживать единый набор файлов проекта пакета (в одной группе проектов), но при этом захотите скомпилировать и распространить те же самые пакеты для разных версий Delphi.

До сих пор я создавал разные проекты пакетов для каждой версии Delphi и явно определял идентификатор версии Delphi в качестве суффикса (например, Kinect_XE.bpl и Kinect_XE2.bpl ).

Мне известно, что в Параметры проекта для проекта пакета в разделе Описание есть поля префикс LIB и (что более важно для моего требуется) Суффикс LIB .

Я также знаю, что если я помещу значение в суффикс LIB , оно будет добавлено в конец имени файла скомпилированного BPL.

Мой вопрос, однако, первый: возможно ли, чтобы IDE автоматически заполняла поле суффикса LIB номером IDE / RTL Version , и если да ... как?

Я почти уверен, что это возможно, поскольку похоже, что vcl120.На bpl ( и его аналоги для каждой соответствующей версии Delphi ) можно ссылаться (в качестве требований) ваших собственных пакетов, используя только vcl вместо того, чтобы вводить полный ] vcl120 . Фактически, это то же самое поведение, которое я надеюсь достичь ... где мои пакеты могут иметь внутренние ссылки друг на друга (при необходимости) без необходимости предоставлять ссылки на конкретные версии для размещения суффиксов.

Не менее важно то, что решение этой проблемы позволит мне поддерживать единый набор файлов проекта в одной группе проектов (за очевидным исключением XE2, где его файлы проекта не обязательно очень хорошо работают с предыдущими версиями Delphi из-за дополнение Платформы ).

Я подозреваю, что мне может потребоваться ввести значение вроде $ (VER) (или что-то подобное) в поле суффикс LIB , но это не сработает, и я ' мы просмотрели Google в поисках правильного решения.

Надеюсь, ты сможешь помочь!

ОБНОВЛЕНИЕ 1

Сейчас я пишу плагин IDE для использования с ( в крайнем случае ) Delphi 2007 до XE2, который дает проектам DLL и BPL новую опцию, называемую AutoSuffix . При переключении на любая IDE с установленным плагином AutoSuffix немедленно применяет к проекту правильный суффикс версии IDE.

Плагин AutoSuffix будет доступен (бесплатно) для всех в течение следующих 24 часов, и этот вопрос обновлен соответствующим образом.

ОБНОВЛЕНИЕ 2

Хорошо ...Delphi 2007 - это настоящая боль! Я заставил AutoSuffix работать с 2009 до XE2, но 2007 требует немного больше времени (терпение ценится).

ОБНОВЛЕНИЕ 3

Похоже, Embarcadero услышал наш коллективный призыв к упрощению унификации пакетов между версиями.

Марк собирается протолкнуть это, чтобы увидеть, смогут ли будущие версии Delphi поддерживать функцию {$ LIBSUFFIX AUTO} . Я надеюсь очень скоро услышать ответ, так ли это. Если это так, это определенно влияет на то, как AutoSuffix должен будет работать в XE2 и более старых версиях (поскольку в настоящее время он не предоставляет простой переключатель AUTO .. ​​у него есть собственный метод).

Сейчас я надеюсь, что EMB серьезно отнесется к этому запросу, предоставит его в качестве неотъемлемой функции в будущем, чтобы он стал простым случаем использования AutoSuffix в существующих версиях для унификации процесса во всех версиях. !

16
задан Daniel Fischer 15 May 2012 в 21:08
поделиться