簡體   English   中英

IDE期望文件位於不同的位置

[英]IDE expecting file to be in different location

我在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錯誤消息

我立即注意到的一件事是它不是在Source文件夾中查找,而是直接在Packages文件夾中查找。 不知何故,IDE期望該單元與包位於同一位置。 自從我在一年前創建軟件包以來,我從未更改過任何庫路徑,文件位置或軟件包結構。

該文件確實存在,但位於與其看起來不同的地方。 該文件從未保存在包含項目的文件夾中,實際上除了包項目本身之外沒有其他任何內容保存在Packages文件夾中。 這一切都存在於Source文件夾中,但IDE似乎不這么認為。

為什么IDE會認為此文件位於不同的文件夾中? 當我雙擊它們時,與同一單元相關的所有其他提示和警告都可以正常工作,但不是這個。

編輯

我已經創建了一個新的測試包來解決這個問題。

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

導致此編譯器警告的特定代碼段位於此類中:

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

當我使用Process Monitor進行編譯時,我看到IDE正在30多個不同的位置搜索此文件(當然是失敗的),它看起來像是在每個庫路徑中搜索,而不是在包中所說的那個位置。

我試過的事情

  1. 已驗證DPRDPROJ文件之間的這些路徑沒有區別
  2. 安裝了所有最新的更新和IDE FixPack(實際上給了我新的問題)
  3. 使用Process Monitor監視文件的訪問權限
    1. 過濾器:進程名稱等於BDS.exe ; 路徑以TestPackageUnit.pas
    2. 結果:“NAME NOT FOUND” - >所需訪問:通用讀取處置:打開選項:同步IO非警報,非目錄文件屬性:N ShareMode:讀取,寫入AllocationSize:n / a
  4. 僅考慮設計時間,僅運行時間和設計時/運行時
  5. 嘗試使用已注冊和未注冊的組件
  6. 嘗試使用庫路徑中的目錄而不是庫路徑中的目錄
  7. 從庫路徑中刪除了大約20個不必要的條目以使其更短
  8. 將目錄移動到庫路徑的頂部
  9. 已驗證沒有與項目相關聯的DOF文件(我認為是舊版本)
  10. 重新啟動IDE和計算機次數
  11. 從項目中清除編譯和臨時文件,包括BPL和DCU文件
  12. strict private改為private甚至public

當delphi搜索路徑列表太長時,我確實遇到了這樣的問題。 我總是可以幫助自己將相關目錄更多地移到前面,即在列表中。

檢查文件是否尚未添加到項目文件(dpr或dpk)。 項目 - 查看源將顯示該文件。

如果不是這種情況,請嘗試在項目中的所有文件中搜索文件名,然后查看出現的情況。

在另一個網站上找到:

還有另一個QC可能與您的問題有關。 http://qc.embarcadero.com/wc/qcmain.aspx?d=87693

轉到項目選項 - > Delphi編譯器 - >輸出C / C ++並在C / C ++輸出文件生成下選擇僅生成DCU。

Dalija Prasnikar

資料來源: http//codeverge.com/embarcadero.delphi.general

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM