Где делают Вас, парни хранят третью сторону (и Ваше собственное) компоненты?
Вы разделяете копии на версию 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\
Какие-либо лучшие идеи?
У меня есть каталог, в котором я делаю все свои проверки. Компоненты (версионные) - это просто еще один чек-аут (**).
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, специфичных для приложений.
Мои библиотеки зависят от проекта и хранятся в подкаталогах в библиотеках источников:
/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 и полагаюсь на них только для изменения незначительно между версиями, поэтому это не имеет значения, если я использую правильные источники при сборке проекта.
Все мои файлы Delphi находятся в подкаталогах в C: \ Delphi
Я всегда использовал папку под корнем, такую как d:DelphiComponents с управлением версиями (при необходимости), организованным в каждой отдельной подпапке.
Например, d:DelphiComponentsMMTools имеет папки Delphi6 и Delphi7. Поскольку у меня есть несколько довольно старых библиотек в этих папках, я избегаю использования пробелов в именах папок.
Хранение библиотек в программных файлах вызовет множество проблем при использовании Vista и более поздних версий. В таких ОС гораздо лучше использовать отдельный каталог, не содержащий исполняемых файлов. Но оставьте Delphi в защищенном месте или установите правильные ACL, если вы установите его в другом месте. Помните, что Windows небезопасна, потому что так делает большинство пользователей. Вы также можете установить переменную среды так, чтобы она указывала на путь к библиотеке, а затем использовать ее с синтаксисом $ () в путях к библиотекам Delphi. Например, если вы используете C: \ dev \ lib \ delphi, вы можете установить переменную DLIB, указывающую туда, а затем использовать $ (DLIB) \ JCL в пути к библиотеке. Это также позволяет просто переключаться между библиотеками. установка необходимой переменной среды перед запуском Delphi. Если пакеты и каталоги библиотек спроектированы правильно, нет необходимости хранить разные копии для разных версий Delphi, они будут создавать подпапки для каждой версии, но многие этого не делают и могут потребоваться отдельные копии.
Я думаю, что использование подпапок в корневом каталоге (например, c: \ src или c: \ Delphi) не является хорошей идеей по соображениям безопасности. Это похоже на привет из старых времен, когда вы действительно не используете безопасность или правильную структуру папок.
Вы хотите папку с возможностью записи? У вас есть Мои документы. И есть даже подпапка RAD Studio. Не нравится MyDocs? У вас есть AppData.
Вы хотите защищенную папку? Есть Все пользователи или Программные файлы.
Если я устанавливаю готовую библиотеку - я устанавливаю ее в папку Delphi в Program Files (точная папка не важна - это может быть lib или sources).
Это дает мне большое преимущество (хотя другие считают это недостатком): в Vista и Win7 UAC не позволит вам вмешиваться в установленные файлы библиотеки, точно так же, как это делается для самого Delphi. У вас есть файлы pas, файлы dcu, bpl и т. Д. - отлично. Просто используйте их. Не нужно его перекомпилировать или менять.
Если же я устанавливаю библиотеку, которую планирую изменить, я устанавливаю ее в папку «Мои документы / RAD Studio», чтобы она не была защищена от записи, и я мог с ней связываться.