在 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文件中检测当前设置的输出目录?
1条答案
按热度按时间roqulrg31#
对不起,有点晚了,但诀窍是从预构建事件中从头开始创建一个单元。
只需将此行复制/粘贴到预生成输入框中:
(echo unit ProjectExe;&echo interface&echo const MyProjectExe = '$(OUTPUTPATH)';&echo implementation&echo begin end.) > $(PROJECTDIR)\ProjectExe.pas
并在
uses
子句中包含ProjectExe
(即使此文件尚不存在)。