记一次程序在Windows家庭版上运行.NET Framework DbProvider无法加载解决过程

来源:互联网 发布:mysql输出语句 编辑:程序博客网 时间:2024/05/18 01:45

一、概述

        软件开发完毕并且通过了测试部测试已经发布上线,可是偶尔一次把软件放到了虚拟机里启动时出错了导致软件无法启动。错误信息:System.Configuration.ConfigurationErrorsException: 找不到或无法加载已注册的 .Net Framework Data Provider。这个错误导致创建连接sqlite数据的实例失败,无法读取数据无法初始化软件。
        看到这个错误第一反应是支持sqlite的dll程序集缺失了,但是到软件目录下检查发现System.Data.SQLite.dll文件存在。在这种情况下检查了配置文件里关于DbProvider的配置节点是否配置正确,结果是配置无误。此时,确定软件本身应该没有什么问题,毕竟通过测试了;那么如果是系统的问题是不是缺少.NET Framework组件?好,立马下载4.0版组件进行安装。安装完成后错误依旧。
        到此,我也是无头的苍蝇不知道往哪个方向飞了,那就直接把错误复制粘贴百度吧。网上还是有不少这种情况的,不过基本上都是asp.net项目运行时报错了,通过修改web.config配置等方法可以解决,关于桌面程序的没有啊(想哭脸)。
         就在我无路可走的时候,测试部的同事说软件在win10家庭版上报错了,无法启动。看到报错的日志,也是同样的错误。在win7的32位、64位家庭普通版,win10家庭版都会报这个错误。

二、解决方案

         百般无奈之下,干脆把虚拟机装上VS进行调试吧。VS被我装到了虚拟机里,当我再次运行软件的时候正常启动了,错误消失了。此时,脑子里立马出现了问号,为什么会消失 了跟安装VS有关系吗?好,为了验证想法,把VS卸载掉试一试会不会报错。卸载VS后启动软件,运行正常。通过控制面板看到有很多VS的组件并未卸载掉。于是,逐个卸载组件并在每卸载一个组件就运行一次软件看看是否正常。卸载掉VC++运行库时,运行软件再次报错了;安装上VC++运行库,软件运行正常。问题已经明了,Windows的家庭版没有自带VC++运行库导致了这个错误。
        对此问题作出说明加上VC++运行库发版,问题解决。VC++运行库采取的是VC++2010版兼容XP。
        下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=5555
阅读全文
1 0
原创粉丝点击