记录中文名WPF应用无法启动

今年开春,突然就收到部分用户反馈软件无法启动的问题,沟通后远程查看发现应用刚启动就直接崩溃了,在Windows的事件查看器可以看到应用的崩溃日志,发现是 ucrtbase.dll 模块崩溃,错误代码 0x0000409

寻找问题

网上查询后发现有人说是因为软件是中文名的原因,修改软件名称为英文后可以正常启动,后面发现软件下其他中文程序还是可以正常启动,所以中文名只是触发条件之一。系统层面有的是Windows 10,有的是Windows 11,有人处于23H2,有人还处于21H2,可以当作共同点的就是都是最新两代的英特尔CPU(12代,13代),在公司尝试复现这个问题也没成功过。

在网上查询众多资料后,终于在一位大佬的博客上发现了问题所在,这个锅必须是英特尔背起来,问题关键在于英特尔的核显驱动(难怪无法复现,公司的都是不带核显的CPU),在12代和13代的核显驱动会导致中文名的WPF程序启动时发生崩溃。

应用程序用了中文名,开发框架使用WPF,使用了新一代带核显的英特尔处理器,英特尔驱动为 31.0.101.4575 以上,这些条件都满足的情况下就会出现应用程序启动后崩溃。

解决方法

好在英特尔现在已经发布了新的驱动修复了这个问题,使用 31.0.101.5379 版本以上的驱动可以正常启动中文名WPF应用程序。

发布时间:2024-05-14
其他阅读

我的读书清单

分享互联网人的读书清单,从2024年开始,本文会整理我读过的书籍,按时间排序,编辑成一份读书清单。

查看原文

静态文件防盗链的一种思路

在我们的系统中,总会有一些资源需要保护起来不被盗走,如果是动态接口可以通过验证权限来保护,静态资源大多需要对外开放,比较难以保护,本文就介绍保护静态文件资源一种思路——那就是使用 HTTP 中 Referer 头。

查看原文

记录中文名WPF应用无法启动

今年开春,突然就收到部分用户反馈软件无法启动的问题,沟通后远程查看发现应用刚启动就直接崩溃了,在Windows的事件查看器可以看到应用的崩溃日志,发现是 ucrtbase.dll 模块崩溃,错误代码 0x0000409

查看原文

Angular使用路由复用实现单页多窗(Tab)

我们在开发后台管理系统时,一个很重要的需求就是多窗口编辑,来回切换使用。一种思路是使用iframe来记录多个多页面展示,本文通过Angular路由复用来实现这一需求。

查看原文

Fetch发送请求

fetch 是 javascript 中一个新的 api,用于访问和控制 HTTP 的请求和响应等,不再需要使用传统的 XMLHttoRequest

查看原文