Dav*_*vid 5 msbuild c++builder delphi-xe4 c++builder-xe4
我msbuild在RAD Studio XE4中遇到了一些奇怪的错误,我正在寻求帮助来诊断正在发生的事情.我已经遇到了这个问题已经有几个星期了,但是我自己也没有成功解决这个问题 - 时间问得更广泛了.症状是:
msbuild Project.cbproj似乎可以正常工作msbuild Project.cbproj /t:Clean,并删除中间文件.输出的可视扫描不显示任何异常文件被删除 - 只有.obj文件,链接器状态文件,最终EXE等.msbuild Project.cbproj /t:Build或只是简单失败,并显示以下错误消息:msbuild Project.cbprojMicrosoft(R)Build Engine版本3.5.30729.5420 [Microsoft .NET Framework,版本2.0.50727.5472]版权所有(C)Microsoft Corporation 2007.保留所有权利.
Build build 12/09/2013 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):错误F1026:找不到文件:'True.dpr'完成构建项目"C:\ projects\Project.cbproj"(默认目标) - 失败.
建立失败.
"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'
Run Code Online (Sandbox Code Playgroud)0 Warning(s) 1 Error(s)
有些事情让我觉得这个:
True.dpr不存在,也无法找到手动搜索.cbproj文件True.dpr的True条目,或者查找(对我来说)可能被误解为项目名称的条目.(如果您不熟悉Delphi,.dpr文件是一个老式的项目文件 - 它包含入口点.构建一个可能意味着msbuild正在某处找到源或项目条目.'真'在我看来就像是. cbproj文件被误解或被破坏 - 但它是全新的,所以不应该,并且它可以在IDE中运行.)有关系统和项目的其他信息:
msbuild正在从RAD Studio XE4命令行启动,即使用该rsvars.bat文件设置路径等的命令行.有任何想法吗?我一直试图解决它多年,我很难过.
小智 9
我在Delphi XE5中遇到了同样的错误.运行MSBUILD,/v:diag输出DCC32的完整命令行,DCC32 true在参数中有一个流氓.
以下页面指出了解决方案:http://wiert.me/2013/11/20/when-the-delphi-xe5-commandline-compiler-fails-with/
在这种情况下,我传递参数/p:DCC_DebugInformation=true,但这也可能在.dproj文件中.改变true以2解决问题 - 即
MSBBUILD /p:DCC_DebugInformation=2 project.dproj
Run Code Online (Sandbox Code Playgroud)
回答我自己的问题,希望对未来的读者有用。
这个评论很关键:
它在顶部列出了 .Net 的两个版本,旧版本放在方括号中。它可以加载或使用两个框架的一部分吗?
结果发现这根本不是项目名称。相反,我们编写了一个自定义构建记录器,用于与 RS2010 附带的 msbuild 版本一起使用。它是使用不同版本的 .Net 构建的,加载记录器 DLL 似乎会导致 msbuild 内部出现重大问题 - 这是可以理解的,因为我猜这意味着它正在加载两个不同版本的 .Net 运行时。
为什么这个答案可能是错误的:我确实尝试了没有自定义记录器的命令行(慢慢地一点一点地修剪我们旧的工作命令行,然后再次工作以找到问题。)那些sans -logger 构建也失败了,这让我有点疑惑。msbuild 崩溃实例的某些中间输出可能会混淆后续运行,或者 .Net 运行时中的某些内容缓存了 DLL 的使用或不同加载的运行时。我确实知道自定义记录器确实会导致问题,删除DLL 本身(此时一切才真正开始工作)以及从命令行中删除它就解决了问题。
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |