Delphi一直在将DLL构建到错误的目录中

时间:2014-09-15 14:18:21

标签: delphi linker delphi-xe2

我有一个用Delphi XE2构建的组项目,它有3个项目,总是构建到一个选项集的错误文件夹中。 (我在Release和Debug下有4个配置,一个用于我们的软件配置,一个用于FastMM,它只是我想用于调试的调试,总是进入错误的文件夹。编译项目甚至说它正在构建到了正确的文件夹,但是DLL总是在另一个文件夹中出现,我在单元测试主项目之外的代码时只使用了一次。

我删除了所有相关文件,.identcache,.res,.tvsproj(无论是什么),没有任何改变。我注意到的一个非常奇怪的事情是我复制了其中一个项目以配置第二个项目,并模仿它从中复制的项目的行为,我甚至从未测试过那个项目,所以它从来没有为它配置输出路径。

显然这使得调试非常烦人,我必须将文件复制到正确的文件夹才能做到这一点(当它实际工作时我有点惊讶,因为我认为Delphi可能期望在它的输出中找到文件路径,但哦,那些事情是神奇的)

让我知道如果我可以发布任何帮助,我真的不知道什么是必要的,我检查了注册表中它正在构建的输出路径并没有发现我认为没有任何后果(没有任何相关这些项目)。


我注意到的一件事是,因为我将原始项目复制到另一个项目(它们是插入主程序的同一部分)它具有相同的功能,当我尝试在“构建组”中使用它时自动选择两个项目。这是一个谜,但可能是红鲱鱼?

1 个答案:

答案 0 :(得分:1)

好的,所以通常会发生这种情况,经过3年的痛苦,当我终于提出问题时,我直接回答答案,好像RAD Studio对我们撒谎。配置显示:

enter image description here

但dproj有这个:

enter image description here

在里面。

cfg_3有两个条件,只有最后一个条件出现在RAD Studio中,因为一些奇怪的原因,构建路径是从第一个获取的(即使它在两者中指定)。因此,删除错误的(第一个)修复了问题,现在正在建立正确的文件夹。

我在测试库时导入了Utils选项集,但是当我将程序合并到主程序中时,我将其删除了。不知怎的,它没有找到完全脱离dproj的方式,我猜(不知道为什么),但似乎其他库搞砸了,因为它共享了一个GUID。