- A+
所属分类:.NET技术
问题描述
一个WPF应用(已知依赖有.Net Framework4.8,二次开发软件本体),满足上述两个依赖后,在两台同事的Win10笔记上测试正常,在客户的一台Win10笔记本上无法启动。
具体症状就是无症状,双击、管理员运行都没反应。
爬坑之路
- 中文路径问题?
我首先注意到,同事解压软件时使用了中文命名,于是拷贝到英文路径下,测试没有效果❌ - .Net Framework的问题?
同事联系我时,已说明安装.net framework时已经提示已安装,所以开始我也没报太大的希望,为了验证一遍,刚好,软件除了WPF主应用外,还有一个辅助工具应用程序。
依赖同样的.Net Framework框架,于是命令行启动辅助工具,成功运行,至此.Net Framework环境问题被排除❌ - 打印日志,看卡在哪一步?
通过在App.Main方法中逐行加了Log,然而,运行程序Log文件并没有被创建出来,意味着程序好像在App.Main之前就挂掉了❌
自我怀疑
作为刚入职的新兵蛋子,自己的前期任务遇到这种情况,心里还是挺着急的,死马当活马医。
背水一战
牵出Google这条?。
依次搜了:
- wpf can't reach app main❌
- wpf start failed❌
- wpf 没反应❌
- wpf no response❌
- wpf click no response❌
- wpf application launch no response❌
- WPF application does not start✅
在Stack Overflow看到了这个解决方案
- Right click your application and choose properties.
- In the application tab change the output type to Console application.
- Build your application in debug mode.
- Start your application again.
新打包的程序在CMD里运行,终于不是没反应了?,打印出了异常:
System.Windows.Markup.XamlParseException: 'CefSharp.Wpf.ChromiumWebBrowser' threw exception. Inner Exception: could not load CefSharp.Core.Runtime.dll
接下来就是循环搜索的过程,最终确定问题是用户电脑VC++依赖的缺失,装上了Microsoft Visual C++ Redistributable Latest Supported之后,WPF应用顺利启动了。
复盘
有所收获,至少以后对于WPF程序启动不了的情况,不用对着图标点来点去,无能狂怒了?。