Delphi 为什么通过MSBuild编译比通过IDE编译花费的时间要长得多?

Delphi 为什么通过MSBuild编译比通过IDE编译花费的时间要长得多?,delphi,msbuild,Delphi,Msbuild,这是我的bat文件 call "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\rsvars.bat" msbuild.exe C:\Work\Project1.dproj /t:Rebuild /p:Config=Debug;Platform=Win32 这似乎很有效;然而,它需要12分钟来构建。在IDE中进行完整构建时,相同的配置/平台组合需要2分钟30秒。我一直未能找到经济放缓的原因。有什么想法或设置我应该看 编辑:我使用的是I

这是我的bat文件

call "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\rsvars.bat"
msbuild.exe C:\Work\Project1.dproj /t:Rebuild /p:Config=Debug;Platform=Win32
这似乎很有效;然而,它需要12分钟来构建。在IDE中进行完整构建时,相同的配置/平台组合需要2分钟30秒。我一直未能找到经济放缓的原因。有什么想法或设置我应该看


编辑:我使用的是IDEFixPack 5.3,构建时间约为2.5分钟。删除IDEFixPack也会在IDE中生成12分钟的版本。

我想有些包的IDE可以在路径中找到已编译的dcu,而MSBuild只能找到源代码


MSBuild没有输出一个编译日志,您可以在这里检查或发布吗?

根据David Heffernan的建议,我删除了IDEFixPack,我看到了与MSBuild相同的12分钟构建时间。

我们如何复制它?不幸的是,我不知道。今天是我第一次使用msbuild,所以我对这方面的了解还不够,无法提供一个可复制的场景。我可以尝试使用一个示例应用程序,但条件将与我的商业应用程序(有3560000多行)大不相同。我不确定msbuild中是否有我应该查看的已知编译器开关。我忘记了有关IDE的详细信息。我使用IDE fix pack,但我从来没有看到过启用与禁用IDE fix pack时的性能差异,尽管这可能只是差异的一小部分。对不起,我不知道,但这是一个有趣的问题,所以我投了赞成票。祝你好运删除IDEFixPack并尝试在IDE中重新编译。看看这是否相关。你需要尝试获取更多的诊断信息。为什么会发生这种情况?新的基于msbuild的构建的要点是命令行和IDE构建使用相同的搜索路径。我确实觉得这作为一个评论会更好。+1在这种情况下,您应该能够使用Andy的fastdcc来加快您的命令行构建速度。我没有意识到这种调整。我一定会调查的。我们的构建过程变得有些复杂。我们使用FinalBuilder,它工作得很好,但是Delphi构建操作似乎丢失了自动增量版本号设置,版本号也不正常。我有一个实用程序,可以在调用msbuild之前更新dproj版本设置。我发现你在StackOverflow上的帖子对切换非常有用。谢谢很高兴能帮上点小忙!