簡體   English   中英

在Delphi XE3中安裝軟件包時缺少VCL40.bpl

[英]VCL40.bpl missing when installing package in Delphi XE3

我想在Delphi XE3中安裝一個舊軟件包。

我已經進行了必要的修改,並且程序包的構造可以,但是當我要求安裝它時,出現錯誤:VCL40.pbl丟失。

如何解決此問題並擺脫此錯誤?

謝謝 !

打開您的包.dpk文件。 你會發現vcl40requires條款

requires
  vcl40;

vcl40重命名為vcl以修復此錯誤。

Delphi軟件包是特定於Delphi版本的。 每個Delphi版本都使用相同的代碼創建不同的已編譯軟件包( .bpl ),並且已編譯的軟件包無法在不同的Delphi版本之間共享。

所有的Delphi RTL/VCL/FMX軟件包都帶有后綴,以標記它們打算用於的Delphi版本,並且當您在系統上安裝了多個不同版本的軟件包時,可以避免沖突。 在Delphi 4中,當您的軟件包使用其他軟件包時,該版本號將包含在requires子句中。 這就是為什么您有vcl40 在更高版本(Delphi 7或6)中,已進行了更改,引入了軟件包后綴,該后綴消除了在require子句中寫入版本號的需要,仍然允許已編譯的軟件包針對不同的Delphi版本具有不同的編號。

這就是為什么在Delphi XE3中使用vcl而不是vcl170的原因。

推薦的做法是您也為自己的軟件包使用后綴版本編號,以避免發生沖突。 為此,請轉到Package Options -> Description然后將LIB后綴設置為所需版本。 可以將其設置為任何所需的值,但是,最好使用與Delphi包相同的編號方案,對於XE3使用170編號方案。

當您使用后綴集編譯程序包時,生成的.bpl將被命名為MyPackageName170.bpl

搜索您要安裝的BPL的所有副本,包括運行時和設計,然后刪除它們。 嘗試在XE6上安裝軟件包時,我遇到了類似的問題,一直想要rtl170.bpl(它是XE3 bpl)。 原來在c:\\ Windows \\ SysWOw65中存在運行時BPL的舊版本。 一旦我刪除該副本,安裝就可以了。

暫無
暫無

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

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