错误:无法在 BPL 项目选项中编辑 hints/warnings

Bug: Cannot edit hints/warnings in BPL project options

我利用从 Embarcadero 通过电子邮件收到的(限时)升级优惠升级到 Delphi XE7。我喜欢。像这样的好版本7年一遇:)

但我有一个问题:我不知道如何消除一些警告。例如 'W1011 Text after final END'。 'Project Options' 框不同。所有那些可编辑的值都消失了。相反,我有 3 个条目,例如 'Value from: Debug configuration - All platforms.'

在哪里可以配置全局 "Debug configuration - All platforms" 东西?

编辑:截图后更新。下面标记为 'General projects' 的旧答案,因为它在一般情况下仍然有用,对于 EXE、DLL 等

仅限 XE7 中的 BPL 项目(在 XE6- 中正常,在 XE8+ 中修复)

更新:此错误已 marked as resolved in XE8

我在你的屏幕截图中看到你打开了一个 BPL 项目(顺便说一句,你在 XE7 中使用 XE2 Graphics32 包 - 最好使用专用的 XE7 包。)

我可以验证 BPL 不会像其他项目类型那样显示警告和提示列表。EXE、DLL 等列出它们,如下所示。我认为这是 a bug: RSP-8980. 这是 XE6 的 回归; XE6 按预期显示提示和警告,但 XE7 没有。

手动编辑 DPROJ

David Heffernan 指出这些选项应该在项目中,即使 UI 不允许您编辑它们。一种方法是创建另一个项目(例如 DLL),根据需要设置选项,然后手动编辑 BPL 的项目文件 (.dproj) 以包含它们,从正确设置的其他项目复制。

这很复杂 - 它是 XML,您需要完全正确地获得所有命名配置等 - 但会模仿 UI 为您所做的事情。

BPK文件

您可以通过在 .bpk 文件本身中指定它们来解决此问题。可以看到GR32.bpk文件中有很多工程选项:

BPK 类似于 DPR 文件,仅适用于 BPL。要查找此文件,right-click BPL 项目并单击 'View Source'。

如果添加行

{$WARN GARBAGE OFF}

并重建(不是重新编译,而是构建)项目,您将看到以前显示警告 W1011 的所有单元现在都没有。

当您必须按名称而不是编号来引用它们时,您如何知道特定警告的名称?在 this handy blog post.

上查找它们

我添加了两个质量错误报告:

一般项目

一个项目有多个 targets(例如 Windows 32 位调试,vs OSX 32 位发布等)并且可以为每个设置设置。此外,这些设置是可继承的,因此您可以为所有调试目标、所有发布目标等设置设置

一般来说,您应该在尽可能高的级别设置设置,并在最具体的级别覆盖。

以此为背景,要更改 W1011 Text after final end 打开“项目选项”并导航到“提示和警告”部分。在顶部的 'Target' 下拉组合中,选择要进行更改的 highest-level 目标(例如,在此屏幕截图中我选择了 'Debug configuration - all platforms',这意味着 Win32 调试和Win64 调试和任何其他平台调试将使用此设置和此处指定的值。)

展开 'Output warnings' 树并忽略引用继承值的深红色 'Value from Foo' 节点 - 此处无法使用,对其他设置更有意义。从你的问题来看,这些是我认为让你感到困惑的。相反,向下滚动直到看到 'Text after final end'(警告按字母顺序排序。)

Select它,然后选择您感兴趣的选项。

避免混淆的关键事项:

  • 选项是继承的
  • 使用顶部的组合框select您应用设置的级别
  • 覆盖最具体的可能
  • 设置为最通用的可能
  • 设置值时,忽略深红色"Value from Foo"继承节点;只需向下滚动或展开,然后设置您想要的设置