记一次WPF应用在用户电脑无法启动
问题描述
一个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程序启动不了的情况,不用对着图标点来点去,无能狂怒了🙃。
站外博客地址:https://blog.yuhang.ch
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战