FDPhysFBDriverLink 与 VendorLib 路径行为异常

FDPhysFBDriverLink behaving weirdly with VendorLib Path

我正在使用 FireDAC 和 Firebird 3.0 开始我的第一个应用程序,我遇到了 FDPhysFBDriverLink 这个奇怪的问题。

设置它需要您设置 VendorHomeVendorLib 以使驱动程序 link 工作...

当我设置它们时,驱动程序一直在我的 VendorHome 路径末尾添加“\bin\”。

例如:
在运行时,我的应用程序 FDPhysFBDriverLink 的属性设置如下:

FDPhysFBDriverLink.VendorHome := ExtractFilePath(Application.ExeName);
FDPhysFBDriverLink.VendorLib  := 'fbclient_64.dll';

在设计中它们是在属性中设置的,它们总是相同的,我可以向你保证。

我还可以向您保证,此 DLL 始终与应用程序位于同一文件夹中。

但是当我执行我的应用程序时,FireDAC 显示此异常:

[FireDAC][Phys][FB]-314. Cannot load vendor library [C:\Development\bin\fbclient_64.dll]. Não foi possível encontrar o módulo especificado

Hint: check it is in the PATH or application EXE directories, and has x86 bitness.

明确一点,ExtractFilePath(Application.ExeName) returns 这个:C:\Development\。我仔细检查了一下。

我尝试在我的应用程序文件夹中创建这个 bin 文件夹,它开始工作了。

现在的问题是,我不想为单个dll文件创建一个文件夹。

有谁知道这个问题的解决方法或如何正确修复它?

正如 Victoria 所建议的那样,将 VendorLib 设置为完全限定路径可以解决问题。 问题仍然存在,但只要你不使用 VendorHome 属性,应该没问题。