【问题标题】:New Version of Third Party COM DLL - How to Install and Keep Old Versions in Delphi?第三方 COM DLL 的新版本 - 如何在 Delphi 中安装和保留旧版本?
【发布时间】:2010-11-08 19:13:09
【问题描述】:
我需要让我的 Delphi 程序使用新版本的第三方 DLL。我希望能够使用新版本,但如果需要,可以恢复到旧版本。
某些对象是应用程序中表单上的不可见对象。其他我在运行时实例化。
如何在保持现有版本的同时将新版本的 DLL 安装到 Delphi 中?我正在使用 Delphi 2007。
【问题讨论】:
标签:
delphi
com
activex
delphi-2007
typelib
【解决方案1】:
我们有几种产品。其中一些是用不同版本的Delphi和不同版本的外部组件开发的。 (有时移植/升级不是一种选择)。
为了解决这个问题,我们为每个产品设置了(网络)共享。如果我们开始开发产品,我们会将标准驱动器(在我们的例子中是 w:)映射到该共享并启动所需版本的 Delphi。这样,每个产品都有自己的环境和自己的组件版本。
缺点是您有时必须在启动时杀死一些弹出窗口,但系统工作正常。
另一种解决方案是使用虚拟电脑。但并非所有许可系统都允许这种用途。
【解决方案2】:
在运行时(包括部署),您应该能够使用 Win32 程序集并行共享 (WinSxS) 使新版本的组件可用于您的应用程序,同时让系统的其余部分继续工作与任何现有版本。 免责声明:我从未在实践中这样做过。
但是,在设计时(在 Delphi 中),我认为您别无选择,只能使用当时的特定版本,除非它们生成新的接口和 coclass(在这种情况下,您可以在 Delphi 中生成不同的名称wrapper) 用于更改的所有内容。 Gamecat 提供的解决方案可能是您最好的选择。