jum*_*ojs 3 c# foxpro dbf visual-foxpro
我试图使用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驱动程序安装包并将其分发给您的用户.
如果您想为库安装滚动自己的.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)
Run Code Online (Sandbox Code Playgroud)
如果将/ s开关添加到命令行,如[SystemFolder] regsvr32.exe/s,则无需用户干预即可注册dll.