【问题标题】:Convert relative path from delphi group projects to full paths将delphi组项目的相对路径转换为完整路径
【发布时间】:2014-05-06 17:04:19
【问题描述】:

我只是怀疑相对路径。我正在使用 Delphi XE 更新。

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

我有一个功能可以从 Delphi 映射文件“.Groupproj”并导入 以正确的构建顺序将“项目包含”添加到我的应用程序中。

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

获取完整路径的一种方法是将项目组保存在“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>

我有什么有效的方法来识别这些组的完整路径 项目?

【问题讨论】:

  • 您可以使用 ConvertToAbsolutePath 任务将路径转换为绝对路径http://msdn.microsoft.com/en-us/library/bb882668.aspx
  • 嗨@JamesWoolfenden。谢谢你的小费。在 Delphi Project Group 中,相对路径由文件在物理上保存项目组的位置定义。因此,项目组中包含的相对路径未正确解析。因此需要在解析相对路径之前设置当前目录。但是,我会测试您的提示以确认。

标签: xml delphi compilation msbuild


【解决方案1】:

问了他们几次之后,只是通过帮助 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'));

有必要,将当前文件夹更改为在解析相对路径之前保存项目组的文件夹。

工作完美。

谢谢。

【讨论】:

    猜你喜欢
    • 2014-10-29
    • 2012-04-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 2017-08-01
    相关资源
    最近更新 更多