2019-11-29-win7-无法启动-WPF-程序-D3Dcompiler_47.dll-丢失

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019-11-29-win7-无法启动-WPF-程序-D3Dcompiler_47.dll-丢失相关的知识,希望对你有一定的参考价值。

原文:2019-11-29-win7-无法启动-WPF-程序-D3Dcompiler_47.dll-丢失

title author date CreateTime categories
win7 无法启动 WPF 程序 D3Dcompiler_47.dll 丢失
lindexi
2019-11-29 08:22:10 +0800
2019-10-22 17:54:58 +0800
WPF

本文记录 D3Dcompiler_47 丢失问题,在安装 KB4040973 KB3178034 完成的 win7 系统可能出现 D3Dcompiler_47 丢失,让 WPF 等软件无法启动

现象

现象是无法启动,可以在事件查看器看到日志

错误应用程序名称: xx.exe,版本: 5.1.3.33526时间戳: 0x59c5951c
错误模块名称: KERNELBASE.dll,版本: 6.1.7601.17514,时间戳: 0x4ce7bafa
异常代码: 0xe0434352
错误偏移量: 0x0000b727
错误进程 ID: 0x8c
错误应用程序启动时间: 0x01d339ce8c34bedb
错误应用程序路径: xx
错误模块路径: C:Windowssyswow64KERNELBASE.dll
报告 ID: cca5651f-a5c1-11e7-9921-00155d356504

调用堆栈

  1. Framework Version: v4.0.30319
  2. Description: The process was terminated due to an unhandled exception.
  3. Exception Info: System.ComponentModel.Win32Exception
  4. Exception Info: System.DllNotFoundException
  5. at MS.Internal.NativeWPFDLLLoader.LoadNativeWPFDLL(UInt16*, UInt16*)
  6. at MS.Internal.NativeWPFDLLLoader.LoadCommonDLLsAndDwrite()
  7. at <Module>.CModuleInitialize.{ctor}(CModuleInitialize*, Void ())
  8. at <Module>.?A0x721f77f1.CreateCModuleInitialize()

解决方法

安装在 Windows Server 2012、Windows Server 7 和 Windows Server 2008 R2 上的 d3dcompiler_47.dll 组件的更新

注意,此时卸载重装 .NET 4.5 可以解除依赖,但是如果用到像素着色器依然会提示文件损坏

复现步骤

step1:安装 .NET 4.6 (4.6、4.6.1、4.6.2都会出现这个问题)

step2:安装以下两个更新:KB4040973 KB3178034 (任意安装顺序);

说明:

1、KB3178034 是 Microsoft 图形组件安全更新程序;发布时间:2016 年 8 月 9 日

MS16-097: Description of the security update for Microsoft Graphics Component: August 9, 2016

Microsoft 安全公告 MS16-097 - 严重

2、KB4040973 是 net46以上 相关更新程序;发布时间:2017 年 9 月 12 日

Description of the Security and Quality Rollup for the .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7 for Windows 7 SP1 and Windows Server 2008 R2 SP1 and for the .NET Framework 4.6 for Windows Server 2008 SP2: September 12, 2017

3、上述更新安装后,计算机上并不会出现 D3Dcompiler_47.dll ,但引入了其依赖;

4、上述更新必须同时安装,只安装其中一个不会出现问题。

5、出现这个问题之后,重新安装.NET4.6,或者升级 .NET4.6 为 4.6.1或4.6.2不能解决问题。

影响范围

  • 用 .NET 4.5 和以上版本的 WPF 程序
  • 其他用到像素着色器的 win32 程序

相关链接

win7系统电脑丢失D3DCOMPILER_47.DLL 怎么办 - Microsoft Community

启动时出现 Photoshop 系统错误 - 缺少 D3DCOMPILER_47.dll

WPF程序停止工作-CSDN论坛

以上是关于2019-11-29-win7-无法启动-WPF-程序-D3Dcompiler_47.dll-丢失的主要内容,如果未能解决你的问题,请参考以下文章

wpf 如何启动一个窗口 是最大化的

在其中运行 wpf 应用程序后无法卸载 AppDomain

WPF-App 嵌入来自其他 AppDomain 的 WPF 窗口/控件

无法使用 HTTPS 启动 ASP.NET Core

WPF游览器程序为啥启动时候打开一个world文件而不运行程序?

将WPF项目作为WinForm解决方案中的进程进行调试。