MSBuild 在 Cpp.Targets 中搜索 'True.dpr' 时失败,使用新的 XE4 项目

标签 msbuild c++builder delphi-xe4 c++builder-xe4

我遇到了一些奇怪的问题 msbuild RAD Studio XE4 中的项目错误,正在寻求帮助以诊断正在发生的事情。我已经遇到这个问题几个星期了,但我自己还没有成功解决 - 是时候更广泛地询问了。症状是:

  • 对于已在 IDE 中构建和运行的项目,msbuild Project.cbproj似乎可以工作
  • 运行 msbuild Project.cbproj /t:Clean工作,并删除中间文件很好。对输出的视觉扫描没有显示任何被删除的异常文件 - 只是 .obj 文件、链接器状态文件、最终的 EXE 等。
  • 但是正在运行 msbuild Project.cbproj /t:Build或者只是简单的msbuild Project.cbproj清洁或清洁结帐后 失败 带有以下错误消息:

  • Microsoft (R) Build Engine Version 3.5.30729.5420 [Microsoft .NET Framework, Version 2.0.50727.5472] Copyright (C) Microsoft Corporation 2007. All rights reserved.

    Build started 12/09/2013 10:35:03. Project "C:\projects\Project.cbproj" on node 0 (default targets).

    _PasDepCheck: Modified: Source\Common\resample.pas _PasCoreCompile: Embarcadero Delphi for Win32 compiler version 25.0 Copyright (c) 1983,2013 Embarcadero Technologies, Inc. C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\Bin\CodeGear.Cpp.Targets(191 1,5): error F1026: File not found: 'True.dpr' Done Building Project "C:\projects\Project.cbproj" (default targets) -- FAILED.

    Build FAILED.

    "C:\projects\Project.cbproj" (default target) (1) -> (_PasCoreCompile target) -> C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\Bin\CodeGear.Cpp.Targets(1 911,5): error F1026: File not found: 'True.dpr'

    0 Warning(s)
    1 Error(s)
    


    有些事情让我印象深刻:
  • 它在顶部列出了 .Net 的两个版本,方括号中列出了一个较旧的版本。它可能是加载或使用两个框架的一部分吗?
  • True.dpr不存在,我也找不到手动搜索 .cbproj 的条目。 True.dpr 的文件,或用于 True看起来(对我来说)的条目可能会被误解为项目名称。 (如果您不熟悉 Delphi,.dpr 文件是一个老式的项目文件 - 它包含入口点。构建一个可能意味着 msbuild 正在某处查找源或项目条目。在我看来,“真”就像 . cbproj 文件被误解或已损坏 - 但它是全新的,所以不应该,并且它可以在 IDE 中工作。)

  • 关于系统和项目的其他信息:
  • 该项目正在从 RAD Studio 2010 升级。然而,该项目文件是在 XE4 中从头开始创建的,即它是全新的,通过在 IDE 中创建一个新项目并添加现有单元(Delphi 和 C++ 文件)。
  • 该项目是一个带有一两个 Delphi 单元的 C++ 项目。在编译开始时编译 Delphi 单元时,您可以看到它正在崩溃。对于那些不熟悉混合 C++ 和 Delphi 的人,通常在混合源项目中,IDE 或 msbuild 会首先编译 Delphi 单元(这样做可以创建/更新 C++ 头文件以与 Delphi 代码交互。)
  • 该项目是一个组,但应编译独立。
  • 我安装了带有更新 1 的 RAD Studio XE4。
  • msbuild正在从 RAD Studio XE4 命令行启动,即使用 rsvars.bat 的命令行。文件设置路径等
  • 在上面的输出中,我将我们的真实项目名称更改为 Project,因为我不想识别它。但是,其余的输出是准确的。

  • 有任何想法吗?我一直试图解决它多年,并被难住了。

    最佳答案

    我刚刚在 Delphi XE5 中遇到了同样的错误。使用 /v:diag 运行 MSBUILD输出 DCC32 的完整命令行,其中有一个流氓 true参数之间。

    以下页面指向了解决方案:http://wiert.me/2013/11/20/when-the-delphi-xe5-commandline-compiler-fails-with/

    在这种情况下,我传递了参数 /p:DCC_DebugInformation=true ,但这也可能在 .dproj 文件中。换 true2解决了问题 - 即

    MSBBUILD /p:DCC_DebugInformation=2 project.dproj
    

    关于MSBuild 在 Cpp.Targets 中搜索 'True.dpr' 时失败,使用新的 XE4 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754355/

    相关文章:

    asp.net - Web 部署项目 - 远程 IIS 服务器

    ios - Xamarin.iOS - MSBUILD 不生成 IPA

    command-line - 为什么 MSBuild 只能在开发人员命令提示符下正常工作?

    delphi - 如何监控 OmniThreadLibrary 中的 Pipeline 阶段?

    Delphi : Field 'False' not found. 仅发生在我的电脑上

    msbuild - 如何在MSBuild中并行运行任务

    delphi - 在 FireMonkey 中锚定 GUI 组件

    delphi - 在 Delphi 中控制 fsMDIChild 窗口的位置

    delphi - 为什么我必须在 OnMouseMove 期间调用 Repaint?

    json - 我可以用 TJSONMarshal 序列化接口(interface)(_recordset)吗?