我正在嘗試在 Delphi 10.4 中安裝軟體包。
當我嘗試構建其中一個包時,我得到熟悉的警告對話框,提示 Delphi 需要做某事:

通常我們不關心這個對話框。
- 我們不知道他們的意思。
- 我們不在乎。
- 他們沒有意義。
- 這只是您單擊的其中一項內容,OK以便 Delphi 關閉并按照我們的指示進行操作。
除了在這種情況下,這是一個真正的痛苦
這次它說它需要添加getit.:
Add getit.
getit contains implicit unit(s) Exceptions.
所以我想,“隨便。我不在乎你需要做什么;只要作業。” . 并將其添加到我的包中:

Of course, there's no way a code unit from 10 years ago is using Getit of 10.4. I didn't even have 10.4 until 
So how do i not gain a dependency on getit. How do i stop Delphi from insisting that it needs getit anything?
uj5u.com熱心網友回復:
我們不知道他們的意思
然后我建議你學習,因為這是了解包如何作業的非常重要的東西。
10 年前的代碼單元不可能使用 10.4 的 Getit
真的。但它可能確實參考了在您的專案中找不到但在 Getit 包中找到的東西。根據https://en.delphipraxis.net/topic/3646-delphi-1041-upgrade:
當一個單元被一個不包含在該包中的包參考時,它會查找該單元的其他已安裝包。在這種情況下,它在 getit 包中找到了一個。
這是自古以來的標準行為。嘗試編譯一個使用 VCL.Controls 的包,而不在 requires 子句中提及任何內容。Delphi 會建議添加 vcl。
因此,為避免 IDE 想要添加getit包,您需要添加對包含 IDE 正在搜索的單元的正確包的參考(在這種情況下,參考具有該Exceptions單元的包)。
幾天前,Borland 強加給我
自 2008 年Borland將他們的工具賣給Embarcadero以來,他們就退出了開發者工具市場。他們沒有強迫你升級,你選擇了。
uj5u.com熱心網友回復:
問題在于getit.dcp使用了一個名為Exceptions.
Delphi 10.4 不包含該單元;它只是getit.dcp內部的一個秘密單元。
您認為編譯器會繼續在getit.dcp中查找它需要的Exceptions單元。
相反,偶然發現一些完全不相關但恰好具有相同名稱的東西似乎很高興。
- 理想情況下,編譯器會知道只在它知道的位置尋找它需要的東西
- 不要從地上撿起一些口香糖開始咀嚼
所以解決方案是:
- 將我的單位名稱從
Exceptions.pas - 到
Contoso.Exceptions.pas
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433776.html
