记录中文名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
其他阅读

HTTP方法

HTTP报文中包含了方法,指的是客户端希望服务器对资源执行的动作,是一个单独的词,比如GET,POST,OPTIONS等,本文将会介绍主流的几种方法。

查看原文

WPF打包成单文件

在开发WPF程序时,有时我们需要把整个软件打包成一个文件,这样可以方便分发,本文将会介绍怎么把WPF打包成单文件形式。

查看原文

扩展Serilog实现日志推送平台

最近在完成一个服务管理平台,提供可视化管理车间控制服务,包括服务的启停,日志的查看。在各服务中使用 Serilog 对日志进行记录,推送到服务管理平台,再进行统一分发,各客户端同步查看服务运行日志。

查看原文

什么是上帝对象

上帝对象(God Object)是面向对象编程(OOP)中一种特殊现象,在面向对象编程中,我们把逻辑和数据封装成一个个对象,每个对象各司其职,最终实现我们的业务,但是如果业务复杂的情况下,可能会出现一个对象封装太多的数据或者担任了太多的职责的情况,这样的对象我们称为上帝对象。

查看原文

使用中间件记录网站访问日志记录

对于网站访问日志的记录,一般情况下都是使用现有的日志服务,比如谷歌分析引入轻量 js 文件即可。本文主要介绍对于现有的 Asp.Net Core 网站使用中间件快速记录访问日志。使用中间件的好处:在服务端进行处理,无视客户端类型(特殊信息无法获取);统一处理,不需要对每个地址重复处理等。

查看原文