问题 D2010编译了行数差异


在构建项目时,有两个地方报告了源行计数:

  1. 在编译进度对话框中
  2. 在项目|信息

在Delphi 2007中,这两个数字对于我们正在构建的项目是相同的。

在Delphi 2010中,这两个数字截然不同。 (1)计数大于100万行或40%。 (第二)计数足够接近Delphi 2007计数,以满足正在构建的正确文件,以解释移植到D2010的代码更改。源文件的替代版本在构建环境中根本不存在。

所以问题是:

为什么D2010中的第一和第二行数量如此大不相同,当它们在D2007中可以理解的相同时?

有关:

为什么从D2007到D2010的行数变化如此之大?


10287
2018-02-03 17:48


起源

我使用单个控制台应用程序进行了初步测试,并且只看到两个值之间存在单线差异,但是对于基于表单的项目,值的差异要大得多。它似乎不会导致{$ IFDEF}块,注释或空行。 - skamradt
完全相同的问题: stackoverflow.com/questions/2188479/... - Nick Hodges
史蒂夫,下次将任何添加内容发布为对上一篇文章的评论,而不是故意创建副本。它避免了混乱。 - Ken White
梅森首先代表我发布了这个问题。我没有足够的代表对梅森的问题发表评论,所有答案都没有提到。 Delphi 2010报告了在同一编译中在同一项目上编译的源代码行的两个完全不同的数字。你可以称之为欺骗问题,但另一个问题的答案并不是解决这个问题。
@Nick基于你在另一个问题中的评论,我看不出你怎么能认为这完全重复,因为编译路径的差异与我的问题完全无关。这是为SAME编译报告的两个数字。


答案:


我们已经对此进行了调查,这是一个错误。它是转移到MS Build的结果。我们已经修复了当前版本。

正确 number是“项目信息”菜单中的数字。在编译对话框中报告的那个是“近似”。


11
2018-02-04 00:37



谢谢尼克!谜团已揭开!
凉!那么我们是否可能会在假设的D2010更新6中看到这个问题,还是会在D2011中? - Mason Wheeler
有趣的是,它似乎只在D2010,而不是在D2009 ...... - François


未解析(ifdefed)代码在D2007中计算,因为空行算法太简单了?一个小测试会显示出来。


0
2018-02-03 20:38



在D2010中,我们测试了IFDEFed块,空白行和注释行,我们可以将它们与同一D2010构建中两个不同行数的差异相关联。至少没有一个非常简单的测试项目。
更正:我们无法将这些块与差异相关联。