从32位迁移到64位 - > Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册

时间:2014-05-20 13:22:03

标签: c# winforms xls xlsx

我们使用vs2005开发了32位Windows应用程序。在这个应用程序中,用户可以使用xls文件上传他的详细信息。 作为需求,我们需要支持64位机器,我们已经完成了。 我们遇到的唯一问题是,当用户尝试上传文件系统时会抛出错误" Microsoft.Jet.OLEDB.4.0'提供商未在本地机器上注册" 你可以指导我同样的

2 个答案:

答案 0 :(得分:5)

Microsoft的Jet驱动程序不存在于64位格式中。您有两种选择:

  1. 仅将您的应用程序编译为32位。这将在64位计算机上运行32位工作站和WOW64,因此您仍然可以获得"支持" 64位机器,即使它运行32位。
  2. 转到ACE驱动程序,该驱动程序有32位和64位变体。
  3. 选项#1可能就是我推荐的。这需要对应用程序进行最少的更改,并且通过运行本机64位,您的应用程序可能几乎没有什么好处。其次,如果为了支持32位和64位而转移到ACE,现在需要担心两个不同的ACE驱动程序,64位和32位。

答案 1 :(得分:1)

我遇到了类似的问题 - 请参阅How to enable reading C# Excel files on IIS (reading them locally on the machine where IIS is running works fine)?

使用EP Plus为XLSX重写所有内容,NPOI为XLS重写所有内容比使用Microsoft内容更容易。两者都是免费软件并且运行良好。