记一次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 IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 为什么构造函数需要尽可能的简单
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
· 瞧瞧别人家的限流,那叫一个优雅!
· 1.net core 工作流WorkFlow流程(介绍)
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 面试官:如果某个业务量突然提升100倍QPS你会怎么做?
· 短信接口被刷爆:我用Nginx临时止血