gpt4 book ai didi

delphi - IDE 期望文件位于不同位置

转载 作者:行者123 更新时间:2023-12-03 15:27:28 26 4
gpt4 key购买 nike

我有一个 Delphi XE2 版本 16.0.4429.46931 中的组件包,既是运行时包又是设计时包。该软件包已存在一年多了,文件/文件夹结构始终相同。我将所有单元保存在根目录下的专用 Source 文件夹中,并将实际包保存在同一根目录下的 Packages 文件夹中。因此,包可以在 \Root\Packages\ 中找到,单元可以在 \Root\Source\ 中找到。

今天,在构建运行时包之后,我正在查看提示和警告。其中一个警告是这样的:

[DCC Warning] Inno.TimeChart.pas(1): W1025 Unsupported language feature: 'class constructor'

警告本身并不是让我担心的。问题是当我双击此警告时,我从 IDE 收到一条错误消息:

IDE Error Message

我立即注意到的一件事是,它不是在 Source 文件夹中查找,而是直接在 Packages 文件夹中查找。不知何故,IDE 期望该单元与包位于同一位置。自从我一年多前创建这个包以来,我从未更改过任何库路径、文件位置或包的结构。

该文件确实存在,但位于与看起来不同的位置。该文件从未与项目一起保存在文件夹中,事实上,除了包项目本身之外,没有任何其他内容保存在 Packages 文件夹中。这些都位于 Source 文件夹中,但 IDE 似乎另有想法。

为什么 IDE 会认为该文件位于不同的文件夹中?当我双击与同一单元相关的所有其他提示和警告时,它们都可以正常工作,但不是这个。

编辑

我创建了一个新的测试包来解决此问题。

Root\TestPackage.dpr
Root\Source\TestPackageUnit.pas

导致此编译器警告的特定代码位于此类中:

type
TMyComponent = class(TComponent)
strict private
class constructor Create;
end;

当我使用进程监视器进行编译时,我看到 IDE 正在 30 多个不同的位置搜索该文件(当然失败了),看起来它正在每个库路径中搜索,而不是在包所说的一个位置中搜索就在。

我尝试过的事情

  1. 已验证 DPRDPROJ 文件之间的这些路径没有区别
  2. 安装了所有最新更新和 IDE FixPack(实际上给我带来了新问题)
  3. 使用进程监视器监视文件的访问
    1. 过滤器:进程名称等于BDS.exe;路径以 TestPackageUnit.pas
    2. 结尾
    3. 结果:“NAME NOT FOUND”--> 所需访问:通用读取配置:打开选项:同步 IO 非警报、非目录文件属性:N 共享模式:读取、写入分配大小:不适用
  4. 尝试过仅设计时、仅运行时以及设计时/运行时组合
  5. 尝试使用已注册和未注册的组件
  6. 尝试使用库路径中的目录,而不是库路径中的目录
  7. 从库路径中删除了大约 20 个不必要的条目,以使其更短
  8. 已将目录移至库路径顶部
  9. 已验证没有与项目关联的 DOF 文件(我认为该文件来自旧版本)
  10. 重新启动 IDE 和计算机的次数
  11. 清理了项目中的编译文件和临时文件,包括 BPL 和 DCU 文件
  12. 严格私有(private)更改为私有(private),甚至公共(public)

最佳答案

当delphi搜索路径列表太长时,我确实遇到了这样的问题。我总是可以帮助自己将相关目录移到前面,即在列表中。

关于delphi - IDE 期望文件位于不同位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13985460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com