Путь к библиотекам Delphi
где вы, ребята, храните сторонние (и ваши собственные) компоненты?
вы храните отдельные копии для каждой версии Delphi?
в течение многих лет я использую c:program filesborlanddelphi7lib
, даже для Delphi 2006, 2007, 2009 и 2010, например:
c:program filesborlanddelphi7libAggPas
c:program filesborlanddelphi7libDeHL
c:program filesborlanddelphi7libDevExpress
c:program filesborlanddelphi7libFastCode
c:program filesborlanddelphi7libFastMM
c:program filesborlanddelphi7libFundamentals
c:program filesborlanddelphi7libGraphics32
c:program filesborlanddelphi7libJCL
c:program filesborlanddelphi7libJVCL
c:program filesborlanddelphi7libOmniThread
c:program filesborlanddelphi7libRaize
c:program filesborlanddelphi7libTeeChartPro
c:program filesborlanddelphi7libTurboPower
c:program filesborlanddelphi7libVirtualTreeView
c:program filesborlanddelphi7libZeos
однако в настоящее время я даже не использую Delphi7 больше (что он может сделать, что 2010 не может?), так что этот путь больше не имеет смысла. Я собираюсь установить windows7 на свою домашнюю машину, поэтому я думаю о чем-то вроде это:
c:srcDelphiLib
идеи получше?
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, но теперь я рассматриваю использование жестко закодированных путей (или заменителей) для некоторых проектов. В основном из-за начала использования Ито.
(*) Delphi (все версии) иногда меняет рабочий каталог при открытии файлов, что, в свою очередь, запутывает относительные пути (они относятся к рабочему Директории, а не к .ДПР(ОЖ) очевидно). Если я замечаю это, я открываю файл (используя 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, а скорее в путь поиска projecet, поэтому я уверен, что использую правильную версию библиотеки для каждого проекта. (Это, конечно, только для поддержания старых версий проекта, текущие проекты обновляются до последних версий библиотеки).
библиотеки хранятся в subversion и являются связан с проектами как svn: externals.
хранение библиотек в программных файлах вызовет множество проблем при использовании Vista и более поздних версий. С этими ОС гораздо лучше использовать отдельный каталог вне тех, которые содержат исполняемые файлы. Но оставьте Delphi в защищенном пути или установите правильные ACLs, если вы установите его в другом месте. Помните, что Windows не защищена, потому что большинство пользователей делают это так. Вы также можете установить переменную среды, указывающую путь к библиотеке, а затем использовать ее с синтаксисом $() в путях библиотеки Delphi. Например, если вы используете C:\dev\lib\delphi, вы можете установить переменную DLIB, указывающую туда, а затем использовать $(DLIB)\JCL в пути к библиотеке. Это также позволяет переключаться между библиотеками, просто устанавливая необходимую переменную среды перед запуском Delphi. Если библиотечные пакеты и каталоги правильно разработаны, нет необходимости хранить разные копии для разных версий Delphi, они будут создавать подпапки для каждой версии, но многие из них не являются и могут нуждаться в отдельных копиях.
Если я устанавливаю готовую к использованию библиотеку-я устанавливаю ее в папку Delphi в разделе Program Files (точная папка не важна - это может быть lib или sources).
Это имеет большое преимущество для меня (другие люди думают об этом как о недостатке): на Vista и Win7 UAC не позволит вам возиться с установленными файлами библиотеки, так же, как это делает это для самого Delphi. У вас есть ваши pas-файлы, у вас есть файлы dcu, bpl и т. д. - Отлично. Просто используй их. Нет необходимости перекомпилировать или изменить его.
Если, однако, я устанавливаю библиотеку, которую я планирую изменить - я устанавливаю ее в папку Documents/RAD Studio, поэтому она не защищена от записи, и я могу возиться с ней.
Я всегда использовал папку под корнем, например d:\DelphiComponents с версиями (при необходимости), организованными в каждой отдельной подпапке.
например d:\DelphiComponents\MMTools имейте папку Delphi6 и delphi7. Поскольку у меня есть довольно старые библиотеки в этих папках, я избегаю использования пробелов в именах папок.
Я думаю, что использование подпапок в корневом каталоге (например c:\src или c:\Delphi) не очень хорошая идея по соображениям безопасности. Это похоже на привет из старых дней, когда вы действительно не используете структуру безопасности или правильных папок.
вы хотите папку для записи? У вас есть Мои документы. И есть даже подпапка RAD Studio. Не нравится MyDocs? У вас есть AppData.
вы хотите защищенную папку? Есть все пользователи или программные файлы.