Delphi(2007)ide将dproj文件中的绝对路径更改为相对路径。。。为什么和什么时候?

Delphi(2007)ide将dproj文件中的绝对路径更改为相对路径。。。为什么和什么时候?,delphi,Delphi,我们的delphi 2007 IDE有一个小问题,delphi IDE有时会毫无明显原因地将节点中的绝对路径更改为相对路径 例如,在保存项目之前,这是在dproj文件中编写的: D:\DcProgs\ProgUtils\ConvertToSmw\ConvertToSmw.exe 在Delphi2007IDE中保存后,它将更改为 ..\..\..\ProgUtils\ConvertToSmw\ConvertToSmw.exe 我的问题是德尔福为什么和什么时候这样做,有没有办法阻止德尔福这样做 您可

我们的delphi 2007 IDE有一个小问题,delphi IDE有时会毫无明显原因地将节点中的绝对路径更改为相对路径

例如,在保存项目之前,这是在dproj文件中编写的:

D:\DcProgs\ProgUtils\ConvertToSmw\ConvertToSmw.exe

在Delphi2007IDE中保存后,它将更改为

..\..\..\ProgUtils\ConvertToSmw\ConvertToSmw.exe

我的问题是德尔福为什么和什么时候这样做,有没有办法阻止德尔福这样做

您可以看到,我们制作了一个自定义构建脚本,它为我们的项目进行夜间构建,并在成功构建后使用upx打包可执行文件。为了知道exe文件的位置,我们使用“DCC_DependencyCheckOutputName”节点,但是upx不喜欢相对路径,所以我们需要绝对路径。如果delphi停止改变这一点,或者我们至少知道什么时候或者为什么会发生这种情况,这样我们就知道在ide内部不应该做什么来防止这种情况,那就太好了


有什么想法吗?

当项目和引用的文件位于同一驱动器上时,IDE会这样做

Delphi试图帮助您使用相对路径创建项目和引用,这样您可以更轻松地在目录树中移动到另一个位置或机器

有时这会触发(例如,当您希望包含来自Delphi示例代码的部分时)

要做到这一点,唯一的方法是确保您希望具有绝对路径名的部分位于与主项目不同的驱动器号上


也可能(我还没有尝试)您可以通过让它们位于不同的UNC路径来强制执行此操作。

在提交更改时,使用您的修订控制系统来还原这些IDE更改。这就是我们目前所做的,但有时我们会忘记在提交之前检查dproj,以查看delphi是否对其进行了更改。只有在夜间构建开始时才会引起注意。了解delphi何时以及为什么将这些路径从绝对路径更改为相对路径仍然很有趣。这似乎不是一直都在发生。这让我想知道德尔福为什么这么做this@WillemsDavy使用Delphi RAD==‘随机应用程序开发’有时:)如果您正在提取节点,在将其反馈给upx之前,您是否有可能将其结果扩展回完整路径规范?