获取错误“‘VFPOLEDB.1’提供者未注册在本地计算机上”,即使安装和注册供应商后,(Getti

2019-08-18 02:53发布

好了,所以我有,有一个Windows服务FileSystemWatcher是手表一些Visual FoxPro数据库文件的输出文件夹。 它充分利用了VFPOLEDB.1提供商来读取这些文件。 因为它在生产中使用我不能从这个供应商消失。

但是,我从来没有支持这个应用程序之前,所以这就是为什么我的开发是不设置它。 下面是我的环境:

  • Windows 7的64位
  • Visual Studio 2005中
  • .NET 2.0的Windows服务

所以,当我刚开始得到的错误我想我只是没有足够的供应商在所有的,我是对的。 所以,我下载并安装它从这里 。

我接着再次大降文件夹中的文件,但我得到了同样的错误。

我想是因为它是一个x64的机器,我可能会遇到与它的问题,因为它可能落入得到注册SysWOW64 ,它是如我所料,所以我跑这个命令:

regsvr32 "C:\Windows\SysWOW64\mscomct2.ocx"

它说,它已成功注册(指无事大声笑),但我再次放弃了文件- 同样的错误。

我还没有重新启动我的机器,我可以的,如果某人有一个令人信服的理由,这就是问题所在,但如果组件与正确注册一般来说regsvr32这是没有必要的。 我一吨的 COM对象的工作,从来没有重新启动,以获取对象,只要我已经注册了。

有谁知道另一步,我需要执行让这件事注册?

Answer 1:

它注册为它应该。 这是您的应用程序被编译为AnyCPU平台。
在64位操作系统这将产生64位代码和64位代码无法访问的32位驱动程序。

您的平台更改为86,你会被罚款。

编辑
两年后,有一些东西添加到这个答案。 现在,与Visual Studio 2013的奶酪已被移动 。 链接在文章中很详细的编译器设置的默认值是如何被改变解释。 该AnyCPU与目标CPU Prefer 32 bit意味着,除非特别需要你的应用程序可以作为32位应用程序也x64bit操作系统离开几乎没有房间给64位应用程序。

有了这个新的配置也成为重要的是记住什么是张贴在下面的评论由马克·贝瑞。 如果你的(现在32位)的应用程序需要在IIS 64位环境中工作,你需要设置Application PoolEnable 32 bit Applications



Answer 2:

我的桌面应用程序(Win7的X64 VS 2015年) - 并一直得到同样的错误,不管是什么。 我改变平台目标x86上,安装了微星作为管理等等 - 所做的一切,我可以谷歌 - 并没有运气。 什么帮助我是安装MSI 每个人 ,而不是只有我 -一个向导在设置屏幕之一。



文章来源: Getting the error “The 'VFPOLEDB.1' provider is not registered on the local machine” even after installing and registering the provider