我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 版本 3.5.30729.5420 [Microsoft .NET Framework,版本 2.0.50727.5472] 版权所有 (C) Microsoft Corporation 2007。保留所有权利。
构建开始于 2013 年 12 月 9 日 10:35:03。节点 0 上的项目“C:\projects\Project.cbproj”(默认目标)。
_PasDepCheck:修改:Source\Common\resample.pas _PasCoreCompile:Embarcadero Delphi for Win32 编译器版本 25.0 版权所有 (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) -- 失败。
构建失败。
"C:\projects\Project.cbproj" (默认目标) (1) -> (_PasCoreCompile 目标) -> C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\Bin\CodeGear.Cpp.Targets(1 911,5):错误 F1026:找不到文件:“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,因为我不想识别它。但是,其余的输出是准确的。
有任何想法吗?我一直在努力解决它很长时间,我很难过。