缓解:图标对象中的 PNG 帧

从 .NET Framework 4.6 开始,Icon.ToBitmap 方法成功将带 PNG 帧的图标转换为 Bitmap 对象。

在面向 .NET Framework 4.5.2 和更早版本的应用中, Icon.ToBitmap 方法在 ArgumentOutOfRangeException 对象具有 PNG 帧时引发 Icon 异常。

影响

此更改会影响以下应用:重新编译为面向 .NET Framework 4.6 的应用,以及对在 ArgumentOutOfRangeException 对象具有 PNG 帧时引发的 Icon 实施特殊处理的应用。 在.NET Framework 4.6 下运行时,转换成功,不再引发 ArgumentOutOfRangeException,因此不再调用异常处理程序。

缓解措施

如果不需要此行为,可通过在 app.config 文件的 <runtime> 部分添加以下元素来保留旧行为:

<AppContextSwitchOverrides
      value="Switch.System.Drawing.DontSupportPngFramesInIcons=true" />  

如果 app.config 文件中已包含 AppContextSwitchOverrides 元素,新值应与 value 特性合并,如下所示:

<AppContextSwitchOverrides
      value="Switch.System.Drawing.DontSupportPngFramesInIcons=true;previous key=previous-value" />

请参阅