疑难杂症-.NET Framework 4.6.2 安装成功,但安装目录下缺少文件
1,问题表现:安装成功后,双击运行,显示程序停止运行;查看日志没有捕获错误日志;
分析:但是查看系统日志如下所示:
1.以为是系统文件缺失或被破坏,使用Depend 检索软件依赖的系统链接库:
在指定位置查找直接依赖文件都存在。
针对系统日志错误:错误模块名称:KERNELBASE.DLL开始请教“度娘“,发现整体千篇一律,大致分为以下几种:
系统文件kernelbase.dll是存放在Windows系统文件夹中的重要文件,通常情况下是在安装操作系统过程中自动创建的,对于系统正常运行来说至关重要。除非用户电脑被木马病毒、或是流氓软件篡改导致出现kernelbase.dll丢失、缺失损坏等弹窗现象,否则不建议用户对该类文件(kernelbase.dll)进行随意的修改。
1、标平台从anycpu改为x64,然后重新编译生成后,在64位服务器上运行就,可以正常运行。
2、x64电脑编译x86后,在运行时需要做兼容处理,桌面快捷方式或者安装目录里的软件图标→鼠标右击→属性→兼容性→以管理员身份运行此程序,即可解决问题。
因为我的软件开始为anycpu,出问题的主机为x86,通过上面步骤后也没有解决问题。
又百度可能是程序自己的问题,1,检查程序配置文件是否正确(检查配置数据库路径等信息);2,检查是否某些引用的插件是否存在;
试过之后还是没有解决问题。
这时,有点迷茫了,程序没有捕获到异常,没有方向没有思路,啊啊啊啊啊。。。。。。
不对,程序没有捕获到异常,我检查代码所有的方法都加上try catch ,还是没有捕获到异常,那是不是.NET Framework环境有问题呀,想了想,软件的运行环境是.NET Framework 4.6.2 打包的时候已经把.NET Framework 4.6.2 的安装包注入到安装包里面了,安装软件时,首先会检测系统是否安装了.NET Framework 4.6.2 ,如果没有安装会自动安装,重新卸载安装,没有提示电脑没有.NET Framework 4.6.2 说明电脑已经安装了.NET Framework 4.6.2 (这里说明一下:win10自带.NET Framework4.7版本,.NET Framework 向下兼容)查看.NET Framework 安装路径,我尼玛 少了好多文件,果断卸载.NET Framework 4.6.2 重新安装后果然解决了问题。
总结:遇到问题首先得冷静,分析现象,通过现象看本质。没有捕获到异常,程序都没有运行以来的环境,都运行不起来怎么捕获异常呢。。。。
解决此问题的思路:
1,查看程序日志看是否有捕获到异常,
2,使用Dependency Walker 检测程序依赖动态库是否缺失
3,检测程序运行依赖环境是否完整