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

在ASP.NET Core中使用过滤器

ASP.NET Core是一个高性能的Web开发框架,过滤器(Filter)在ASP.NET Core中被用于路由方法之上,可以在路由方法执行前后完成一些额外的操作。本文将会介绍在ASP.NET Core中使用 IActionFilter 实现过滤器并读取路由方法中的参数。

查看原文

C#中关于字符串的一些特殊点

在C#中,字符串是一个使用比较多的类型,本文会讲到字符串(string)的一些特殊点。

查看原文

git的一些技巧

git 是一个免费开源分布式版本控制系统,可以高效处理从小型到超大型项目内容管理,本文会介绍一些 git 使用的技巧。

查看原文

WPF托盘运行

本文介绍如何将WPF应用最小化到托盘,窗口关闭后进程仍然运行的方法。

查看原文

Blazor文件上传解决方案

Blazor 是由 Asp.Net Core 团队推出的一个Web前端SPA解决方案,其中包括了使用 WebAssembly 的 Blazor Wasm 和使用 SignalR 进行实时交互的 Blazor server。本篇文章中使用的是 Blazor Wasm 方案来验证上传文件的操作。

查看原文