套用到
.NET Framework 3.5 Service Pack 1

徵兆

請試想下列案例:

  • 您執行 Microsoft .NET Framework 3.5 Service Pack 1 (SP1) 型 Windows Presentation Foundation (WPF) 應用程式。

  • WPF 應用程式使用硬體轉譯管線。

  • 應用程式會載入及卸載包含一或多個自定義 WPF 載入宏元件的許多應用程式網域。

在此案例中,應用程式會遇到 System.Runtime.InteropServices.COMException 例外狀況,然後應用程式當機。

解決方案

Hotfix 資訊

支援的 hotfix 可從 Microsoft 取得。 不過,此 Hotfix 僅是為了修正本文所述的問題。 僅將此 Hotfix 套用至發生此特定問題的系統。 這個 Hotfix 可能會收到額外的測試。 因此,如果您未受到此問題嚴重影響,建議您等待下一次包含此 Hotfix 的軟體更新。 若要從 MSDN 程式代碼庫下載此 Hotfix,請瀏覽下列Microsoft網站:

http://code.msdn.microsoft.com/KB2276690注意 MSDN 程式代碼庫會顯示 Hotfix 可用的語言。 如果您沒有看到列出您的語言,這是因為 [程序代碼庫] 資源頁面無法使用該語言。 注意 如果發生其他問題或需要進行任何疑難解答,您可能需要建立個別的服務要求。 一般支持費用將適用於其他不符合此特定 Hotfix 資格的支持問題。 如需Microsoft客戶服務和支持電話號碼的完整清單,或建立個別的服務要求,請流覽下列Microsoft網站:

http://support.microsoft.com/contactus/?ws=support

先決條件

若要套用此 Hotfix,您必須安裝 .NET Framework 3.5 Service Pack 1 (SP1) 。 

重新啟動需求

套用此 Hotfix 之後,您不需要重新啟動電腦。

Hotfix 取代資訊

這個 hotfix 不會取代任何其他 hotfix。

檔案資訊

此 hotfix 的英文版本具有 (或更新版本的文件屬性) 列於下表中。 這些檔案的日期和時間是以 Coordinated Universal Time (UTC) 表示。 當您檢視檔案資訊時,它會轉換為當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。

適用於所有支援的 x86 版本的 Windows Server 2003 和 Windows XP

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

Presentationcore.dll

3.0.6920.4033

4,218,880

02-Sep-2010

01:32

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

02-Sep-2010

01:28

x86

Presentationhost.exe

4.0.40305.0

295,264

02-Sep-2010

01:28

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

02-Sep-2010

01:32

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

02-Sep-2010

01:32

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

02-Sep-2010

01:32

x86

適用於所有支援的 x64 型 Windows Server 2003 和 Windows XP 版本

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

Presentationcore.dll

3.0.6920.4033

3,997,696

02-Sep-2010

00:53

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

02-Sep-2010

00:48

x64

Presentationhost.exe

4.0.31106.0

320,352

02-Sep-2010

00:48

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

02-Sep-2010

00:53

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

02-Sep-2010

00:53

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

02-Sep-2010

00:53

x64

適用於所有支援的 x86 版本的 Windows Vista Service Pack 2 (SP2) 和 Windows Server 2008 Service Pack 2 (SP2)

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

Presentationcore.dll

3.0.6920.4033

4,218,880

09-Sep-2010

10:52

x86

Presentationfontcache.exe.config

不適用

161

03-Apr-2009

2,125

不適用

Wpfgfx_v0300.dll

3.0.6920.4003

1,736,024

17-Jun-2009

03:08

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

09-Sep-2010

10:52

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

09-Sep-2010

10:52

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

09-Sep-2010

10:52

x86

適用於所有支援的 x64 型 Windows Vista SP2 和 Windows Server 2008 SP2 版本

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

Presentationcore.dll

3.0.6920.4033

3,997,696

09-Sep-2010

10:52

x64

Presentationfontcache.exe.config

不適用

161

03-Apr-2009

20:58

不適用

Wpfgfx_v0300.dll

3.0.6920.4003

2,254,168

17-Jun-2009

03:08

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

09-Sep-2010

10:52

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

09-Sep-2010

10:52

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

09-Sep-2010

10:52

x64

適用於所有支援的 x86 型 Windows 7 版本

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

Presentationcore.dll

3.0.6920.5012

4,218,880

2010年9月11日

01:29

x86

Presentationfontcache.exe.config

不適用

161

10-Jun-2009

21:14

不適用

Wpfgfx_v0300.dll

3.0.6920.4902

1,736,536

10-Jun-2009

21:14

x86

Presentationframework.dll

3.0.6920.5012

5,279,744

2010年9月11日

01:29

x86

Presentationhostdll.dll

3.0.6920.5012

130,408

2010年9月11日

01:29

x86

Presentationhost.exe

4.0.31106.0

295,264

2010年9月11日

01:29

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

2010年9月11日

01:29

x86

Windowsbase.dll

3.0.6920.5012

1,253,376

2010年9月11日

01:29

x86

適用於所有支援的 x64 型 Windows 7 和 Windows Server 2008 R2 版本

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

Presentationcore.dll

3.0.6920.5012

3,997,696

2010年9月11日

01:28

x64

Presentationfontcache.exe.config

不適用

161

10-Jun-2009

20:30

不適用

Wpfgfx_v0300.dll

3.0.6920.4902

2,255,176

10-Jun-2009

20:30

x64

Presentationframework.dll

3.0.6920.5012

4,636,672

2010年9月11日

01:28

x64

Presentationhostdll.dll

3.0.6920.5012

171,368

2010年9月11日

01:28

x64

Presentationhost.exe

4.0.31106.0

320,352

2010年9月11日

01:28

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

2010年9月11日

01:28

x64

Windowsbase.dll

3.0.6920.5012

1,114,112

2010年9月11日

01:28

x64

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

因應措施 

若要解決此問題,請停用硬體轉譯管線,然後啟用軟體轉譯管線。 若要停用硬體轉譯管線,並啟用軟體轉譯管線,請使用下列其中一種方法:

  • 設定 System.Windows.Interop.RenderMode 列舉。下列是一些範例程式代碼,用於設定 System.Windows.Interop.RenderMode 列舉,以便在載入 WPF 視窗時啟用軟體轉譯管線:

    private void OnLoaded(object sender, EventArgs e){System.Windows.Interop.HwndSource hwndSource = PresentationSource.FromVisual(this) as System.Windows.Interop.HwndSource;System.Windows.Interop.HwndTarget hwndTarget = hwndSource.CompositionTarget; hwndTarget.RenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;}
  • 設定 DisableHWAcceleration 登錄機碼。重要:本節、方法或工作包含可告訴您如何修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為加強保護,請先備份登錄再進行修改。 這樣一來,如果發生問題,您就可以還原登錄。 如需有關如何備份和還原登錄的詳細資訊,請按下列文件編號,檢視「Microsoft 知識庫」中的文章:

    322756 如何備份及還原 Windows中的登錄警告 此方法會停用計算機上所有 WPF 應用程式的硬體轉譯管線。 因此,除了客戶控制環境且不介意所有 WPF 應用程式的影響外,通常不鼓勵使用此方法。

    1. 按兩下 [開始],按兩下 [ 執行],輸入 regedit,然後按 ENTER。

    2. 找出並按一下下列登錄子機碼:

      HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics

    3. DisableHWAcceleration 登錄專案的值設為 1。注意 如果 DisableHWAcceleration 登錄專案不存在,請以滑鼠右鍵按兩下登錄子機碼,指向 [新增],然後按兩下 [字串值 ] 以建立新的登錄專案。 為新登錄專案的名稱輸入 DisableHWAcceleration ,按兩下 [DisableHWAcceleration],然後將 DisableHWAcceleration 值數據變更為 1

    4. 結束 [登錄編輯程式]。

其他相關資訊

如需軟體轉譯管線的詳細資訊,請造訪下列Microsoft開發人員網路 (MSDN) 網站:軟體轉譯管線的一般資訊如需 WPF 轉譯登錄設定的詳細資訊,請造訪下列 MSDN 網站:WPF 轉譯登錄設定的一般資訊如需 System.Windows.Interop.RenderMode 列舉的詳細資訊,請造訪下列 MSDN 網站:「System.Windows.Interop.RenderMode」列舉的一般資訊

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。