Я пишу множество компонентов и библиотек для 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 . При переключении On любая IDE с установленным плагином AutoSuffix немедленно применяет правильный суффикс версии IDE к проекту.
Плагин AutoSuffix будет доступен (бесплатно) для всех в течение следующих 24 часов, и этот вопрос будет соответствующим образом обновлен.
ОБНОВЛЕНИЕ 2
Хорошо ... Delphi 2007 - это боль! До сих пор я работал с AutoSuffix с 2009 до XE2, но 2007 требует немного больше времени (терпение приветствуется).
ОБНОВЛЕНИЕ 3
Казалось бы, Embarcadero услышал наш коллективный призыв к упрощению объединения пакетов между версиями.
Марк собирается продвинуть это до конца, чтобы увидеть, смогут ли будущие версии Delphi использовать функцию {$ LIBSUFFIX AUTO} . Я надеюсь услышать очень скоро, будет ли это так. Если это так, это определенно влияет на то, как AutoSuffix потребуется для работы на XE2 и более старых версиях (поскольку в настоящее время он не предоставляет простой переключатель AUTO .. у него есть свой собственный метод).
Теперь я надеюсь, что EMB серьезно отнесется к этому запросу, предоставив его в качестве неотъемлемой функции в будущем, чтобы он стал простым примером использования AutoSuffix в существующих версиях для унификации процесса во всех версиях. !