Delphi XE:构建包时出现虚假的“必须重新编译从未构建的包” / “F2084 内部错误:U10346”错误

9
我正在尝试构建一个包(包A),其中包含DWS编译器。它可以工作,但是当我有第二个需要包含任何使用来自DWS的特定单元的单元的包(包B)时,我会得到以下错误:
[DCC Fatal Error] E2225 必须重新编译从未构建的包“Package A”
如果我将包A更改为按需重新编译,则错误不会消失。相反,我在同一点上得到了以下错误:
[DCC Fatal Error] F2084 内部错误:U10346
我在http://code.google.com/p/dwscript/issues/detail?id=419发布了一个错误报告,似乎作者那里无法复现问题,这意味着我的问题出在哪里。他提供了一些有用的建议:“我有时会看到这个错误是因为有一个杂散的DCU。”
搜索并删除可能相关的所有DCU并没有解决问题,即使重新启动IDE和计算机也是如此。
在编译过程中使用Process Monitor运行BDS跟踪并没有显示任何看起来相关的内容。
有人有什么想法如何追踪这个问题吗?使用Delphi XE,更新1。
同时在Delphi论坛上发布。让我们看看谁先提出解决方案。

是的,这也让我很烦恼,我最终将我的两个包合并在一起以避免这种情况。 - Jerry Dodge
@JerryDodge:不幸的是,在这里这不是一个选项。 - Mason Wheeler
@Mason Wheeler。关于“看起来问题在作者那边无法重现,这意味着我的那边出了问题”。为什么问题只能是出在你这边?难道不可能是因为作者没有使用与你相同的配置/设置或者你有一个他没有覆盖到的测试用例,所以他无法在自己那边重现这个问题吗? - Jack G.
@J.Gonzalez:我理解你的意思,但在这种情况下,我确信这是一个本地问题。请查看链接的错误报告。很明显,作者那边无法重现这个问题。 - Mason Wheeler
@Mason Wheeler。根据“这是一个本地问题”的说法,您是否只在一台机器上遇到了这个问题,还是可以在其他机器上重现它? - Jack G.
3个回答

9

我也遇到过这个问题,并找到了解决方法。

看起来问题是由编译器内联特性引起的。我记得当使用内联方法且该方法太大时会导致此 bug。

这个 bug 仅适用于 Delphi XE,似乎从未修复过。

检查以下包的选项

1) dwsLibRuntime 包

  • Delphi 编译器 / 代码生成 / 代码内联控制 = 自动或开启或关闭
  • 说明 / 构建控制 / 根据需要重新构建

2) dwsLib 包

  • Delphi 编译器 / 代码生成 / 代码内联控制 = 关闭(这很重要)
  • 说明 / 构建控制 / 根据需要重新构建

重新编译包,似乎可以正常安装并编译 DwsIdeDemo。

我还在您提出的错误报告中发布了解决方案: http://code.google.com/p/dwscript/issues/detail?id=419


是的,这个问题最终被确认为内联相关的问题,并且一些后续的提交修复了这个问题。 - Mason Wheeler
在Delphi 10.0 Seattle中,这仍然是一个问题。 - Warren P

3

这似乎是一条虚假消息,因为将涉及的软件包设置为“按需重新构建”并没有起作用。

然而,对我而言有效的方法是从“要求”的选项卡中删除需要重新构建的软件包。之后,一切都成功构建了。


-2

对于打包,请查看项目选项 > 描述 > 构建控制,将“显式重新构建”更改为“根据需要重新构建”

再见


2
正如问题中所指出的,我已经这样做了。但是它没有起作用。 - Mason Wheeler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接