本文介绍适用于 Microsoft .NET Framework 4.6.1 和 4.6 的修补程序汇总。 有关此修补程序汇总修复的问题详细信息,请参阅此 修补程序 汇总修复的问题部分。

解决方法

下载信息

与 KB3139549 对应的修补程序已取代 .NET Framework 的最新更新,其中包含 KB3139549 中以前包含的所有修补程序。 建议安装最新更新的 .NET Framework

有关如何下载 Microsoft 支持文件的更多信息,请单击以下文章编号,以查看 Microsoft 知识库中相应的文章:

119591 如何从联机服务获取 Microsoft 支持文件 Microsoft 扫描了此文件中的病毒。 Microsoft 使用的是文件发布时可以获得的最新病毒检测软件。 该文件存储在安全性得到增强的服务器上,以防止对文件进行未经授权的更改。

更多信息

先决条件

若要应用此修补程序,必须安装 .NET Framework 4.6.1 或 .NET Framework 4.6。  

重启要求

如果正在使用任何受影响的文件,则必须在应用此修补程序后重新启动计算机。 建议在应用此修补程序.NET Framework所有基于应用程序的应用程序。  

修补程序替换信息

此修补程序包不会替换以前发布的修补程序包。

此修补程序汇总修复的问题

问题 1

当 WPF 应用程序使用 TreeView 上下文外部的 TreeViewItem 元素时,应用程序可能会遇到一个 InvalidCastException 异常,其堆栈跟踪启动如下:  

系统。Windows。Controls.VirtualizingStackPanel.FindScrollOffset (Visual v)

注意 当 TreeViewItem 元素位于虚拟化列表控件 (例如 ListBox、DataGrid 或 ListView 控件) 尝试查找 TreeViewItem 或其后代之一的滚动偏移量时,会出现此异常。 例如,如果将 TreeViewItem 声明为 DataTemplate 的根,并且 DataTemplate 用作 DataGrid 列的 CellTemplate,则会发生此异常。  

问题 2

两个 System.Web。Caching System.Runtime。Caching报告整个 AppDomain 使用的内存大小,而不是缓存项使用的内存大小。这是 4.5 .NET Framework中的回归问题,其中进行了计时器实现更改。 除了报告不正确的大小外,缓存引用的其他对象还可能会影响 Gen2 GC 延迟。 在 ASP.NET 托管方案中,缓存还会错误地计算所有应用程序域中的所有缓存的大小 (在回收应用程序域时通过缓存使用的进程内存限制 ASP.NET 性能计数器) 报告。此修补程序将删除缓存中对应用域对象其余对象的意外引用,然后报告正确的大小。 它还包括改进 System.Runtime 延迟的更改。Caching服务器 GC 的多核计算机上运行。 最后,此修补程序正确计算应用域回收方案中所有缓存的大小。  

问题 3

当有一个 Windows Presentation Foundation (WPF) 应用程序依赖于升级鼠标移动来处理触摸移动用户交互 (而不是直接使用触摸事件) 时,可能会遇到非常少的已升级鼠标移动。 过去,WPF 限制触摸移动的鼠标提升,因为触摸移动量使调度程序不知所措。 在 .NET Framework 4.6.1 中,已针对此行为进行了修复。 此修补程序会限制处理的触摸移动数。 因此,鼠标提升限制导致生成的鼠标移动进一步减少。 在此更新汇总中,已删除了鼠标促销限制,触摸移动事件与提升的鼠标移动事件之间的对应关系现在应接近 1 到 1。   

问题 4

假设你使用面向 4.6 .NET Framework WPF 应用程序。 例如,假设你尝试在任何方法 ((例如 UI 事件处理程序或 WPF 调度程序使用 DispatcherOperation 调用的 MainWindow 构造函数) )中设置 CurrentThread.CurrentCulture 或 CurrentThread.CurrentUICulture。 在这种情况下,CurrentCulture 和 CurrentUICulture 值将重置为方法末尾的其各自早期值。 如果应用程序在其 MainWindow 构造函数或按钮单击处理程序中设置 CurrentUICulture,该设置将还原为系统 UI 区域性。此修补程序确保可在 WPF 应用程序中的方法中设置的 CurrentThread.CurrentCulture/CurrentUICulture 值与在 .NET Framework 4.6 之前一样。  

问题 5

在 .NET Framework 4.6 中,向任务库添加了一个新标志 TaskContinuationOptions.RunContinuationsAsynchronously。 但是,当将此标志与 Task.WhenAll、Task.WhenAny 或 Task.Unwrap 结合使用时,它没有任何效果。 引入 标志是为了避免出现某些死锁情况。 此修补程序确保所有类型的任务延续都遵守新标志。

问题 6

AppContext 是基础结构的一部分,可减少中断性更改。 可以使用 AppContext 设置和检索标志,并基于该数据在应用程序中做出决策。 在 .NET Framework 4.6 中,AppContext 中存在错误实现 AppContext 方法的ad-safety 的 bug。 此修补程序为 AppContext 上与设置和检索开关值相关的方法启用正确的线程安全。

问题 7

如果达到分配和生存模式的边缘情况,并且需要在托管堆上创建一个新段,垃圾回收器可能会计算比应该更小的提交大小。 这会导致压缩阶段出现访问冲突,因为垃圾回收器尝试写入未提交的内存。 此修补程序正确计算大小。

问题 8

为某些方法创建本机代码时,.NET Framework和 NGEN 进程可能会崩溃。

问题 9

RyuJit 生成不正确的指令来比较寄存器上的 16 位无符号整数。 如果输入值具有不同的 MSB 值,则生成不正确的结果,因此会生成仅使用寄存器操作数的比较指令。 此修补程序生成正确的说明。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。