将delphi组项目的相对路径转换为完整路径

时间:2014-05-06 17:04:20

标签: xml delphi compilation msbuild

我会对相对路径产生怀疑。我正在使用Delphi XE 更新。

我开发了一个内部程序来编译我们的项目并进行分发 更灵活。

我有一个功能,我在那里映射文件"。 Groupproj"来自Delphi并导入 "项目包括"以正确的构建顺序访问我的应用程序。

我对文件的相对路径存在一些问题,我无法识别 它的完整路径。

获取完整路径的一种方法是将项目组保存在" c:\"中。 因此,所有相对路径都被转换。

目前使用" ExpandFileName"方法,但不是我喜欢的方式 它。对于组项目的所有路径都不完整。因此该方法 无法正确识别路径。

示例XML组文件默认值:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <ProjectGuid>{1CA5FD23-CD16-4E71-8B84-CF65BC26C390}</ProjectGuid>
    </PropertyGroup>
    <ItemGroup>
        <Projects 
Include="..\..\..\Framework\JBTypes\Package\DXE\Types.dproj">
            <Dependencies/>
        </Projects>
        <Projects 
Include="..\..\..\Framework\JBLib\Package\DXE\JBLib.dproj">
            <Dependencies/>
        </Projects>

预期的XML小组示例:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <ProjectGuid>{1CA5FD23-CD16-4E71-8B84-CF65BC26C390}</ProjectGuid>
    </PropertyGroup>
    <ItemGroup>
        <Projects 
Include="c:\JBSoftware\Systems\Framework\JBTypes\Package\DXE\Types.dproj">
            <Dependencies/>
        </Projects>
        <Projects 
Include="c:\JBSoftware\Systems\Framework\JBLib\Package\DXE\JBLib.dproj">
            <Dependencies/>
        </Projects>

我是否有任何有效的方法来确定这些群体的完整路径 项目

1 个答案:

答案 0 :(得分:2)

在询问他们之后很少时间,只需通过帮助Embarcadero论坛,找到解决方案。 这只是我没注意到的一个细节。 实际上,我没有注意到在获取完整路径之前必须设置默认目录。

使用的示例代码:

//Default directory were project group was saved
ChDir('C:\JBSystems\Components');

//Converting relative path to full path
LbTestList.Items.Add(ExpandFileName('..\Framework\JBLib\Package\JBLib.dproj'));

在解析相对路径之前,必须用文件夹更改当前文件夹,保存项目组。

工作完美。

感谢。