Путь для библиотек Delphi

Где делают Вас, парни хранят третью сторону (и Ваше собственное) компоненты?

Вы разделяете копии на версию Delphi?

В течение многих лет я использовал c:\program files\borland\delphi7\lib\, даже для Delphi 2006, 2007, 2009 и 2010, как это:

c:\program files\borland\delphi7\lib\AggPas\
c:\program files\borland\delphi7\lib\DeHL\
c:\program files\borland\delphi7\lib\DevExpress\
c:\program files\borland\delphi7\lib\FastCode\
c:\program files\borland\delphi7\lib\FastMM\
c:\program files\borland\delphi7\lib\Fundamentals\
c:\program files\borland\delphi7\lib\Graphics32\
c:\program files\borland\delphi7\lib\JCL\
c:\program files\borland\delphi7\lib\JVCL\
c:\program files\borland\delphi7\lib\OmniThread\
c:\program files\borland\delphi7\lib\Raize\
c:\program files\borland\delphi7\lib\TeeChartPro\
c:\program files\borland\delphi7\lib\TurboPower\
c:\program files\borland\delphi7\lib\VirtualTreeView\
c:\program files\borland\delphi7\lib\Zeos\

Однако в наше время я даже больше не использую Delphi7 (что он может сделать, в том 2010 не может?), таким образом, этот путь больше не имеет большого смысла. Я собираюсь установить windows7 на своей домашней машине, таким образом, я думаю на чем-то вроде этого:

c:\src\DelphiLib\

Какие-либо лучшие идеи?

9
задан Wouter van Nifterick 14 March 2010 в 16:57
поделиться

7 ответов

У меня есть каталог, в котором я делаю все свои проверки. Компоненты (версионные) - это просто еще один чек-аут (**).

mysvndir\components                         (D7 components)
mysvndir\components2006                     (D2006 components)
mysvndir\components2009                     (D2009 components)
mysvndir\trunk                              (trunk of framework)
mysvndir\flex                               (check out of flex project that 
                                                is in a branch)

Все проекты delphi настроены с относительными путями. Пути компонентов жестко закодированы в delphi в разделе options->environment.

mysvndir может находиться на разных дисках (или на уровне каталогов) в зависимости от рабочей станции. (в частности, на моем ноутбуке он находится на D:). Возможность компилировать альтернативные проверки (например, для проверки более старой ревизии) является еще одной сильной мотивацией для сохранения всего относительного.

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

(*) Delphi (все версии), похоже, иногда меняет рабочий каталог при открытии файлов, что, в свою очередь, путает относительные пути (они относятся к рабочему каталогу, а не к .dpr(oj), очевидно). Если я замечаю это, я открываю файл (используя file->Open) в рабочем каталоге, и все снова в порядке. Я также имею привычку закрывать проекты перед открытием новых.

(**) У меня есть базовый набор компонентов designtime, который я использую для всех приложений и не использую пакеты. У меня нет компонентов designtime, специфичных для приложений.

2
ответ дан 3 November 2019 в 07:13
поделиться

Мои библиотеки зависят от проекта и хранятся в подкаталогах в библиотеках источников:

/src/project1/libs/library1
                   library2
              src/<source files of project1>
/src/project2/libs/library1
                   library2
              src/<source files of project2>

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

Библиотеки хранятся в Subversion и связаны с проектами как svn: externals.

К сожалению, Delphi не поддерживает загрузку пакетов для каждого проекта, поэтому я вынужден либо загружать и выгружать пакеты по мере необходимости, либо - что я делаю большую часть времени - просто использую одни и те же пакеты времени разработки в ide и полагаюсь на них только для изменения незначительно между версиями, поэтому это не имеет значения, если я использую правильные источники при сборке проекта.

1
ответ дан 3 November 2019 в 07:13
поделиться

Все мои файлы Delphi находятся в подкаталогах в C: \ Delphi

1
ответ дан 3 November 2019 в 07:13
поделиться

Я всегда использовал папку под корнем, такую как d:DelphiComponents с управлением версиями (при необходимости), организованным в каждой отдельной подпапке.

Например, d:DelphiComponentsMMTools имеет папки Delphi6 и Delphi7. Поскольку у меня есть несколько довольно старых библиотек в этих папках, я избегаю использования пробелов в именах папок.

0
ответ дан 3 November 2019 в 07:13
поделиться

Хранение библиотек в программных файлах вызовет множество проблем при использовании Vista и более поздних версий. В таких ОС гораздо лучше использовать отдельный каталог, не содержащий исполняемых файлов. Но оставьте Delphi в защищенном месте или установите правильные ACL, если вы установите его в другом месте. Помните, что Windows небезопасна, потому что так делает большинство пользователей. Вы также можете установить переменную среды так, чтобы она указывала на путь к библиотеке, а затем использовать ее с синтаксисом $ () в путях к библиотекам Delphi. Например, если вы используете C: \ dev \ lib \ delphi, вы можете установить переменную DLIB, указывающую туда, а затем использовать $ (DLIB) \ JCL в пути к библиотеке. Это также позволяет просто переключаться между библиотеками. установка необходимой переменной среды перед запуском Delphi. Если пакеты и каталоги библиотек спроектированы правильно, нет необходимости хранить разные копии для разных версий Delphi, они будут создавать подпапки для каждой версии, но многие этого не делают и могут потребоваться отдельные копии.

1
ответ дан 3 November 2019 в 07:13
поделиться

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

Вы хотите папку с возможностью записи? У вас есть Мои документы. И есть даже подпапка RAD Studio. Не нравится MyDocs? У вас есть AppData.

Вы хотите защищенную папку? Есть Все пользователи или Программные файлы.

-1
ответ дан 3 November 2019 в 07:13
поделиться

Если я устанавливаю готовую библиотеку - я устанавливаю ее в папку Delphi в Program Files (точная папка не важна - это может быть lib или sources).

Это дает мне большое преимущество (хотя другие считают это недостатком): в Vista и Win7 UAC не позволит вам вмешиваться в установленные файлы библиотеки, точно так же, как это делается для самого Delphi. У вас есть файлы pas, файлы dcu, bpl и т. Д. - отлично. Просто используйте их. Не нужно его перекомпилировать или менять.

Если же я устанавливаю библиотеку, которую планирую изменить, я устанавливаю ее в папку «Мои документы / RAD Studio», чтобы она не была защищена от записи, и я мог с ней связываться.

1
ответ дан 3 November 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: