2015-05-18 69 views
1

我有一個AggregateException實例的夫婦訪問的一個圖標資源後引起TargetInvocationException問題。實例AggregateException會導致TargetInvocationException

我打破了這個問題下面的步驟來重現(.NET 4.0全部或客戶端配置文件):

  • 創建一個新的WinForms應用程序(一個控制檯應用程序將無法正常工作)
  • 添加任意圖標(.ico文件)的資源
  • 下面的代碼添加到構造函數:

    new AggregateException(); 
    for (var i = 0; ; ++i) 
    { 
        var icon = Resources.Certificate; 
    } 
    

您必須將資源名稱更改爲資源的名稱。

就是這樣。 是的,我知道這個樣本沒有意義。這只是爲了說明問題。我的工作代碼要複雜得多,所有這些代碼都是需要的。

沒有創建此excection應用將工作forewer。但是,如果創建此異常,則對資源的訪問將失敗,並顯示TargetInvocationException。該InnerException告訴我,操作已成功完成(?!?!),其具有System.Drawing.Icon兩行堆棧跟蹤(構造函數初始化+)。

我能做些什麼來防止這個問題?

編輯 這似乎是使用Windows 7的問題。在Win 7上失敗的二進制文件將在Win 8.1中正確運行。

+0

處置圖標?也許內存在泄漏? – dr4cul4

+0

???你是否試圖重現這個問題?你看到任何處置或內存泄漏?給定的代碼是你所需要的。嘗試一下。 –

回答

0

我發現這個問題的原因:

需要以下的系統配置來重現問題:

  • Windows 7的德語版4.5.2框架安裝
  • 微軟的.Net(是的我知道我的二進制編譯針對.NET 4.0)
  • KB2901983安裝

讓一臺只包含.Net框架但沒有KB2901983的機器可以正常工作。安裝KB2901983後,程序在同一個二進制文件中失敗(不需要重新編譯)。

我試圖卸載KB2901983,但它並不能幫助。如果它一旦安裝,程序將失敗。我在一個乾淨的Windows 7德語版上測試了它。

相關問題