Delphi库的路径

时间:2010-03-15 02:57:25

标签: delphi path

你们在哪里存储第三方(和你自己的)组件?

您是否为每个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\

有更好的想法吗?

7 个答案:

答案 0 :(得分:2)

我有一个目录,我可以完成所有结帐。组件(版本化)只是另一个结账(**)。

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中进行硬编码。

mysvndir可以位于不同的驱动器(或目录级别),具体取决于工作站。 (最值得注意的是,在我的笔记本电脑上它是在D :)。编制替代结账的能力(例如检查旧版本)是保持一切相对的另一个强烈动机。

这对于普通的Delphi项目来说效果相当不错(*),但我现在正在考虑为某些项目使用硬编码路径(或替代品)。主要是因为开始使用ITE。

(*)Delphi(所有版本)似乎有时会在打开文件时更改工作目录,这反过来会混淆相对路径(它们相对于工作目录,而不是相应的.dpr(oj))。如果我注意到这一点,我在工作目录中打开一个文件(使用file-> Open),一切都很好。我也养成了在开设新项目之前关闭项目的习惯。

(**)我有一组基本的设计时组件,我用于所有应用程序,不使用包。我没有特定于应用程序的设计时组件。

答案 1 :(得分:1)

我所有的Delphi内容都在C:\ Delphi

下的子目录中

答案 2 :(得分:1)

我的库是特定于项目的,并存储在源代码库的子目录中:

/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中使用相同的designtime软件包并依赖它们仅进行更改在版本之间略有不同,只要我在构建项目时使用正确的资源就无所谓了。

答案 3 :(得分:1)

在使用Vista及更高版本时,将库存储在程序文件中会导致许多问题。使用这些操作系统比使用包含可执行文件的单独目录要好得多。但是将Delphi保留在受保护的路径中,或者如果将其安装在其他位置,则设置正确的ACL。请记住,Windows不安全,因为大多数用户都这样做。 您还可以将环境变量设置为指向库路径,然后将其与Delphi库路径中的$()语法一起使用。例如,如果使用C:\ dev \ lib \ delphi,则可以设置指向那里的DLIB变量,然后在库路径中使用$(DLIB)\ JCL。 这也允许在启动Delphi之前在库之间切换简单地设置所需的环境变量。 如果正确设计了库包和目录,则不需要为不同的Delphi版本保留不同的副本,它们将为每个版本创建子文件夹,但许多不是并且可能需要单独的副本。

答案 4 :(得分:1)

如果我安装了现成的库 - 我将它安装到Program Files下的Delphi文件夹中(确切文件夹并不重要 - 它可以是lib或源代码)。

这对我来说有很大的好处(其他人认为它虽然不利):在Vista和Win7上UAC不会让你弄乱已安装的库文件,就像对Delphi本身一样。你有你的pas文件,你有你的dcu,bpl等文件 - 很好。只需使用它们。无需重新编译或更改它。

但是,如果我安装库,我打算更改 - 我将它安装到My Documents / RAD Studio文件夹中,因此它没有写保护,我可以搞砸它。

答案 5 :(得分:0)

我总是在根目录下使用一个文件夹,例如d:\ DelphiComponents,并在每个子文件夹中组织版本控制(如果需要)。

例如d:\ DelphiComponents \ MMTools有一个Delphi6和一个Delphi7文件夹。由于我在这些文件夹中有一些非常古老的库,因此我避免在文件夹名称中使用空格。

答案 6 :(得分:-1)

我认为出于安全原因,在根目录中使用子文件夹(如c:\ src或c:\ Delphi)并不是一个好主意。当你没有真正使用安全性或适当的文件夹结构时,它看起来像过去的问候。

你想要可写文件夹吗?你有我的文件。甚至还有RAD Studio子文件夹。不喜欢MyDocs?你有你的AppData。

您想要受保护的文件夹吗?有所有用户或程序文件。