FDPhysFBDriverLink 与 VendorLib 路径行为异常
FDPhysFBDriverLink behaving weirdly with VendorLib Path
我正在使用 FireDAC 和 Firebird 3.0 开始我的第一个应用程序,我遇到了 FDPhysFBDriverLink
这个奇怪的问题。
设置它需要您设置 VendorHome
和 VendorLib
以使驱动程序 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 属性,应该没问题。
我正在使用 FireDAC 和 Firebird 3.0 开始我的第一个应用程序,我遇到了 FDPhysFBDriverLink
这个奇怪的问题。
设置它需要您设置 VendorHome
和 VendorLib
以使驱动程序 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 属性,应该没问题。