0

我想扩展GPProfile所以它也适用于 XE2。

它不知道的问题是它不知道如何翻译 XE2 的 .dproj 文件中的文件路径。

出现以下错误:

带有消息 TGpHugeFile.AccessFile(C:\Users\Johan\Documents\RAD Studio\Projects\project8\ $(Platform)\$(Config) \Project8.gpd) 的异常类 EOSError 失败。Win32 错误。代码:3。系统找不到给定的路径。

程序提取路径,但不知道如何翻译$platform$config变量。

虽然将这些 var 分别硬编码到Win32/Win64Release/Debug分别是很容易的,但我想正确地做到这一点。我的意思是我想提取 IDE 保存到 .dproj 文件中的值,这些值是保存文件时变量的选定值。

如何从.dproj文件中提取这些值?

4

2 回答 2

3

You can work this out with a little reverse engineering. Take a default project and add the Win64 platform. Then save the .dproj file. Then change the values of both platform and config, and save another .dproj file. Then run these files through a difference program. The output looks like this:

8,9c8,9
<                       <Config Condition="'$(Config)'==''">Debug</Config>
<                       <Platform Condition="'$(Platform)'==''">Win32</Platform>
---
>                       <Config Condition="'$(Config)'==''">Release</Config>
>                       <Platform Condition="'$(Platform)'==''">Win64</Platform>

Now that you know where the values live, it's just a simple XML parsing task to extract them from the file.


Now for a rant. If anyone from Emba reads this, would it be possible to change the program to store the settings from the IDE in a different file? Perhaps named .dproj.local or .dproj. or similar. That would allow us to commit the .dproj file to revision control and not have it show up as modified every time we switch platforms for a debugging session.

于 2013-09-24T18:36:03.050 回答
1

$(Platform),$(Config)和其他$(...)环境变量由编译器在编译项目时设置。.dproj 包含在编译期间动态转换的路径。如果您需要提取路径并对其进行处理,则必须自己手动翻译环境变量,然后才能使用最终翻译的路径。您可能需要让 GPProfile 根据需要提示用户输入相关的平台/配置值。

于 2013-09-24T17:57:00.443 回答