计算机显示未在机构中注册,[.Net]明明白白的解决'未在本地计算机上注册Microsoft.ACE.OLEDB.12.0'问题...

你可能读取Excel功能的程序在某些计算机上第一次执行就报错了,但是之前在别的地方是好的。

e91df20a6251

oledb报错

大多数网上文章的建议解决办法

建议去微软官网装AccessDatabaseEngine。

打开这些下载页又迷茫了,该下载X86还是X64的版本?

更坏的情况,无论下载哪个版本,都无法安装,就这样搞笑的报错。

==>装64位的,说你装了32位版不能装

==>装32位的,说你装了64位版不能装

M$很幽默,可我真抓狂。

e91df20a6251

image.png

e91df20a6251

image.png

有大神说了用一个安装版修改器来屏蔽M$的幽默。具体是这样做,测试可行。图是我补的。原文丢图了。

e91df20a6251

orca

为了避免找不到这个软件的下载或者捆绑。这里直接提供一个网盘地址。

链接:https://pan.baidu.com/s/1xAIqgCmNMT5LdLtjJkgvdw

提取码:860t

针对AccessDatabaseEngine的X64版本

先用WinRar把AccessDatabaseEngine_X64.exe解压缩,里面会有一个AceRedist.msi安装文件,然后用Orca打开。

找到LaunchCondition里面的BLOCKINSTALLATION,删掉,保存。

e91df20a6251

删除条件

e91df20a6251

删除提示

现在运行AceRedist.msi一路默认安装。结束。

谈下原因,当然就对症下药了

安装完了,我估计还是有部分同学问题没有得到解决。问题的关键是开发人员本地如果装的是x86的office,并且工程又用的默认编译参数,你可以继续往下看。

这是因为oledb有x86和x64版本之分。可能你应该考虑提供两套编译版本x86和x64的给不同的用户使用

在编译发布时需要针对目标计算机(也就是部署给谁用?服务器还是某个用户的客户端)的架构决定设置编译参数。

e91df20a6251

编译选项

如果没有X64的话,可以在Build菜单-->Configuration Manager打开的对话框中建立一个x64的选项。

e91df20a6251

增加x64

你只需要确认用户机或者服务器是装了x86还是x64的office(前提肯定要office2007以上),就提供你对应的编译条件的软件,问题解决。

所以,其实也没有必要逼迫用户装AccessDatabaseEngine。不过注意一点,除了office,你的工程是否还有别的组件受编译的platform的影响,可能会最终决定你怎么面对这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值