Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Visual Fox Pro OleDb_C#_Visual Foxpro_Foxpro_Dbf - Fatal编程技术网

C# 使用Visual Fox Pro OleDb

C# 使用Visual Fox Pro OleDb,c#,visual-foxpro,foxpro,dbf,C#,Visual Foxpro,Foxpro,Dbf,我正在尝试使用C#将数据从DBF文件拉入我的程序。我正在使用Visual FoxPro OLE DB提供程序。它在我的本地机器上运行良好,但我想将我的程序打包成客户端可以使用的dll。问题是,当他们从机器上运行程序时,表示Visual FoxPro OLE DB提供程序没有在他们的机器上注册。有没有办法在不让客户机在其机器上安装Visual FoxPro OLE DB提供程序的情况下使用此功能?简短的回答是“否”…长的回答是: 如果不在每台目标机器上安装VisualFoxproOLEDB提供程序

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

简短的回答是“否”…长的回答是:

如果不在每台目标机器上安装VisualFoxproOLEDB提供程序,我不相信您可以做到这一点。即使您尝试使用COM互操作,您仍然必须安装并注册原始dll-vfpoledb.dll

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

如果要为库安装滚动自己的.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)
自定义操作名称:
工作目录:SystemFolder
EXE和命令行:输入regsvr32.EXE的完整路径
以及.DLL的完整路径。
(通常..\Program Files\Common Files\System\Ole DB\vfpoledb.dll)

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

在64位Vista计算机上开发时,我遇到了类似的问题。我发现为了使用Microsoft Jet OleDB或FoxPro OleDB提供程序,我必须将.Net项目的属性设置为专门针对32位处理器,因为这些提供程序没有64位版本

无论如何,我不确定这是否是目标机器使用您的库的问题的一部分,但我想我会提供它

布莱恩