AggregateException 的实例导致 TargetInvocationException

Instance of AggregateException causes TargetInvocationException

我有一个问题,AggregateException 的实例在访问图标资源几次后导致 TargetInvocationException

我将问题分解为以下重现步骤(.Net 4.0 完整版或客户端配置文件):

您必须将资源名称更改为您的资源名称。

就是这样。 是的,我知道这个示例没有意义。只是为了说明问题。我的工作代码要复杂得多,所有这些代码都是必需的。

如果不创建此异常,应用程序将无法运行。但是,如果创建此异常,则对资源的访问将失败并显示 TargetInvocationExceptionInnerException 告诉我操作已成功完成(?!?!)在 System.Drawing.Icon(ctor + Initialize)中有两行堆栈跟踪。

我能做些什么来防止这个问题?

编辑 使用 Windows 7 似乎是个问题。在 Win 7 上失败的二进制文件将在 Win 8.1 中正确 运行。

我找到了这个问题的原因:

重现问题需要以下系统配置:

  • Windows 7 德语版
  • 安装了 Microsoft .Net Framework 4.5.2(是的,我知道我的二进制文件是针对 .Net 4.0 编译的)
  • 已安装 KB2901983

有一台只包含 .Net Framework 而没有 KB2901983 的机器,程序运行良好。安装 KB2901983 后,程序因相同的二进制文件而失败(无需重新编译)。

我尝试卸载 KB2901983,但无济于事。如果它曾经安装过,程序将失败。我在干净的 Windows 7 德文版上对其进行了测试。