我有一个问题,在几次访问 Icon 资源后,一个实例AggregateException
会导致 a 。TargetInvocationException
我将问题分解为以下步骤来重现(.Net 4.0 完整版或客户端配置文件):
- 创建一个新的 WinForms 应用程序(控制台应用程序将不起作用)
- 向资源中添加任意图标(.ico 文件)
将以下代码添加到构造函数中:
new AggregateException(); for (var i = 0; ; ++i) { var icon = Resources.Certificate; }
您必须将资源名称更改为您的资源名称。
就这样。是的,我知道这个样本没有意义。这只是为了说明问题。我的工作代码要复杂得多,并且需要所有这些代码。
如果不创建此异常,应用程序将更早地工作。但是,如果创建此异常,则对资源的访问将失败并显示TargetInvocationException
. 告诉我InnerException
操作已成功完成(?!?!)在 System.Drawing.Icon(ctor + Initialize)中有两行堆栈跟踪。
我能做些什么来防止这个问题?
编辑 使用 Windows 7 似乎是一个问题。在 Win 7 上失败的二进制文件将在 Win 8.1 中正确运行。