我想扩展GPProfile,因此它也适用于XE2。
它不存在的问题是它不知道如何在XE2的.dproj文件中翻译文件路径。
发生以下错误:
带有消息TGpHugeFile.AccessFile(C:\ Users \ Johan \ Documents \ RAD Studio \ Projects \ project8 \ $(平台)\ $(配置) \ Project8.gpd)的异常类EOSError失败。 Win32错误。代码:3。 系统无法找到给定的路径。'
该程序会提取路径,但不知道如何翻译$platform
和$config
变量。
虽然将这些变量分别硬编码到Win32/Win64
和Release/Debug
很容易,但我还是想做好。我的意思是我想要提取IDE保存到.dproj文件的值,这些文件是保存文件时变量的选定值。
如何从.dproj
文件中提取这些值?
答案 0 :(得分:3)
您可以通过一些逆向工程来解决这个问题。采用默认项目并添加Win64平台。然后保存.dproj文件。然后更改platform和config的值,并保存另一个.dproj文件。然后通过差异程序运行这些文件。输出如下:
8,9c8,9
< <Config Condition="'$(Config)'==''">Debug</Config>
< <Platform Condition="'$(Platform)'==''">Win32</Platform>
---
> <Config Condition="'$(Config)'==''">Release</Config>
> <Platform Condition="'$(Platform)'==''">Win64</Platform>
现在你知道了值的存在位置,它只是一个简单的XML解析任务,可以从文件中提取它们。
现在咆哮。如果Emba的任何人读到这个,是否可以更改程序以将IDE中的设置存储在另一个文件中?也许名为.dproj.local或.dproj。或类似的。这将允许我们将.dproj文件提交到版本控制,并且每次我们为调试会话切换平台时都不会将其显示为已修改。
答案 1 :(得分:1)
$(Platform)
,$(Config)
和其他$(...)
环境变量。 .dproj包含在编译期间动态转换的路径。如果您需要提取路径并对它们执行某些操作,则必须先自己手动转换环境变量,然后再使用最终的转换路径。您可能需要让GPProfile根据需要提示用户输入相关的Platform / Config值。