我正在尝试使用 C# 将 DBF 文件中的数据提取到我的程序中。我正在使用 Visual FoxPro OLE DB 提供程序。它在我的本地机器上运行良好,但我想将我的程序打包成客户端可以使用的 dll。问题是当他们从他们的机器上运行程序时,它说 Visual FoxPro OLE DB 提供程序没有在他们的机器上注册。有没有什么方法可以在不让客户端在他们的机器上安装 Visual FoxPro OLE DB 提供程序的情况下使用它?

最佳答案

简短的回答是否定的……长期的回答是:

我不相信如果不在每台目标机器上安装 Visual FoxPro OLE DB Provider,您就无法做到这一点。即使您尝试使用 COM 互操作,您仍然必须安装和注册原始 dll - vfpoledb.dll

到目前为止,解决此问题的最简单方法是从 Microsoft 获取 FoxPro OleDb Driver install package 并将其分发给您的用户。

如果您想为您的库安装推出自己的 .MSI 包,您可以手动安装和注册丢失的 dll。

要使用 .MSI 包中的 regsvr32.exe 手动注册 .DLL:

首先打开您的 WSI 项目并转到 MSI 脚本。

在“立即执行”选项卡中的 InstallFinalize 之后添加“从目标执行程序”自定义操作。

当“从目标执行程序”对话框出现时,输入:

Custom Action Name: <registerdll>
Working Directory: SystemFolder
EXE and Command Line: Enter the full path to regsvr32.exe
and the full path to .DLL.

(usually ..\Program Files\Common Files\System\Ole DB\vfpoledb.dll)

如果将/s 开关添加到命令行,如 [SystemFolder]regsvr32.exe/s,则应在没有用户干预的情况下注册 dll。

关于c# - 使用 Visual Fox Pro OleDb,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/754663/

10-14 18:28
查看更多