在VS2005下用C#写了一个简单的读取Access数据库的程序,打包,安装,32位机上能正常运行,64位机上始终出现“Microsoft.Jet.OLEDB.4.0provider没有在本地机器上注册”和“Microsoft.ACE.OLEDB.12.0provider没有在本地机器上注册”错误,导致程序不能运行。下
在VS2005下用C#写了一个简单的读取Access数据库的程序,打包,安装,32位机上能正常运行,64位机上始终出现“Microsoft.Jet.OLEDB.4.0provider没有在本地机器上注册”和“Microsoft.ACE.OLEDB.12.0provider没有在本地机器上注册”错误,导致程序不能运行。下面是我的解决步骤:
1 项目属性——生成——目标平台,选择x86,运行程序使其生效。如图:
2 打包时“系统必备”,必备组件选项处选择前两项,安装位置处选择第二项,如图:
3 开始生成安装包,生成完毕,安装包内文件有:两个文件夹和两个文件,如图:
4 更改64位机的IIS属性,如图:
5 将安装包拷贝到64位机上,运行setup.exe进行安装
6 安装完毕运行程序,程序正常运行,未出现异常。
至于出现dll未注册等异常的原因,大家可以参考网址:
http://social.msdn.microsoft.com/Forums/zh-CN/adonetzhchs/thread/518c3e0c-3cbf-4a3a-a0c7-b85ebcc656dc。