如何从 Delphi DPROJ文件中获取输出目录?

mv1qrgav  于 2022-11-29  发布在  其他
关注(0)|答案(1)|浏览(158)

在 Delphi 11 Alexandria中的Windows 10中的一个32位VCL应用程序中,我有一个Delphi项目文件的文件路径:

var MyProjectFile := 'C:\MyProject\MyProject.dproj';

现在我需要得到的EXE文件的文件路径编译从这个 Delphi 项目,只有这个信息.
在我的天真中,我假设EXE文件和 Delphi 项目文件在同一个目录中,所以我尝试用下面的代码从项目文件路径中确定EXE文件路径:

var ProjectExe :=  System.SysUtils.IncludeTrailingPathDelimiter(System.SysUtils.ExtractFilePath(MyProjectFile)) +
      System.IOUtils.TPath.GetFileNameWithoutExtension(MyProjectFile) + '.exe';

但是,只有在 Delphi IDE项目选项中进行了以下设置,此代码才能获得正确的结果:

那么,如果用户在项目选项中定义了不同的输出目录(可能使用 Delphi 目录变量),我该如何获得编译后的EXE文件路径呢?是否可以直接从DPROJ文件中检测当前设置的输出目录?

roqulrg3

roqulrg31#

对不起,有点晚了,但诀窍是从预构建事件中从头开始创建一个单元。
只需将此行复制/粘贴到预生成输入框中:
(echo unit ProjectExe;&echo interface&echo const MyProjectExe = '$(OUTPUTPATH)';&echo implementation&echo begin end.) > $(PROJECTDIR)\ProjectExe.pas
并在uses子句中包含ProjectExe(即使此文件尚不存在)。

相关问题