错误:无法在BPL项目选项中编辑提示/警告

WeG*_*ars 2 delphi delphi-xe7

我利用从Embarcadero通过电子邮件收到的(时间有限的)升级优惠,并升级到Delphi XE7.我喜欢.像这样的好版本出现7年:)

但我有一个问题:我不知道如何沉默一些警告.例如'最终结束后的W1011文本'."项目选项"框不同.所有这些可编辑的值都消失了.相反,我有3个条目,如'Value from:Debug configuration - All platforms'.

我在哪里可以配置全局"调试配置 - 所有平台"的事情?

在此输入图像描述

Dav*_*vid 7

编辑:截屏后更新.以下标记为"常规项目"的旧答案,因为它在一般情况下仍然有用,对于EXE,DLL等.

仅在XE7中进行BPL项目(在XE6中没问题,在XE8 +中修复)

更新:此错误已在XE8中标记为已解决.

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

我可以验证BPL没有显示警告列表和提示其他项目类型的方式.EXE,DLL等列出它们,如下所示.我认为这是一个错误:RSP-8980.这是XE6回归 ; XE6显示了预期的提示和警告,但XE7没有.

手动编辑DPROJ

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

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

BPK文件

您可以通过在.bpk文件中指定它们来解决此问题.您可以在GR32 .bpk文件中看到许多项目选项:

一个新的BPL项目的BPK文件

BPK类似于DPR文件,仅适用于BPL.要查找此文件,请右键单击BPL项目,然后单击"查看源".

如果添加该行

{$WARN GARBAGE OFF}
Run Code Online (Sandbox Code Playgroud)

并重建(不重新编译,但建立)项目,你会看到以前显示警告W1011的所有单位现在没有.

当你必须通过名字而不是数字来引用它们时,你怎么知道特定的警告叫什么?在这个方便的博客文章中查找它们.

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

一般项目

项目有许多目标(例如Windows 32位调试,VSX 32位版本等),并且可以为每个目标设置设置.此外,这些设置是可继承的,因此您可以为所有调试目标,所有发布目标等设置设置.

通常,您应该在可能的最高级别设置设置,并在最具体的级别覆盖.

以此为背景,更改W1011 Text after final end打开"项目选项"并导航到"提示和警告"部分.在顶部的"目标"下拉组合中,选择要进行更改的最高级别目标(例如,在此屏幕截图中,我选择了"调试配置 - 所有平台",这意味着Win32 Debug和Win64 Debug和任何其他平台调试将使用此设置与此处指定的值.)

展开"输出警告"树并忽略暗红色的"来自Foo"的节点,这些节点指的是继承的值 - 这里不可能使用它,对其他设置更有意义.从你的问题来看,这些是我认为令你困惑的.相反,向下滚动,直到看到"最终结束后的文本"(警告按字母顺序排序).

项目选项,具有特定的警告选择

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

避免混淆的关键事项:

  • 选项是继承的
  • 使用顶部的组合框选择应用设置的级别
  • 在最具体的可能情况下覆盖
  • 设置最通用的可能
  • 设置值时,忽略暗红色的"Foo值"继承节点; 只需向下滚动或展开,然后设置所需的设置