.NET Framework 2.0 服務包 2、.NET Framework 3.0 服務包 2 或 .NET Framework 3.5 服務包 1 的匯報,即使安裝成功,檔案也可能無法正確更新

套用到
.NET Framework 3.5 Service Pack 1 Microsoft Windows XP Professional x64 Edition Microsoft Windows XP Professional x64 Edition Microsoft Windows XP Professional x64 Edition

症狀

當你安裝 .NET Framework 2.0 服務包 2、.NET Framework 3.0 服務包 2 或 .NET Framework 3.5 服務包 1 的特定更新時,該更新可能會成功安裝。 然而,檔案可能不會更新。 因此,該更新可能會在 Windows Update 上重新提供。

原因

此情況可能因多種原因發生,包括與雙分支維修相關的某些安裝故障問題。 在 2009 年 1 月至 2009 年 7 月期間,針對 .NET Framework 2.0 Service Pack 2、.NET Framework 3.0 Service Pack 2 及 .NET Framework 3.5 Service Pack 1 的多個熱修補釋版本均存在缺陷。 當安裝有此缺陷的熱修補程式,並安裝安全更新時,熱修丁的存在會阻礙安全更新中的有效載荷檔案正確更新。 在某些情況下,這個問題也可能以以下 Microsoft 知識庫文章中描述的錯誤形式出現:

2262911 「無法載入,輸入 'System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy'」的錯誤,安裝後982167或 Update 982168 Microsoft 已移除所有包含此缺陷的熱修補程式,並以沒有此缺陷的新熱修正取代。 Microsoft 知識庫關於有缺陷熱修補丁的文章已經更新,裡面列出了沒有缺陷的替代熱修補。 如果你安裝了這裡列出的有缺陷熱修補,請使用本文「變通」部分描述的解決方法來解決問題。 如果你不採用這個變通方法,安全更新的有效載荷檔案有可能沒有正確更新,導致電腦處於不穩定甚至可能有漏洞的狀態。

有缺陷的熱修補程式列表

          

946411 修正:當你在 Windows XP Service Pack 2 或 Service Pack 3 基礎的電腦上列印 XPS 檔案時,XPS 檔案中的字元會印錯
952883 IX:包含內部設定器的屬性的 ASMX 服務方法的回傳型別或 out 參數,在安裝 .NET Framework 的電腦上,可能無法序列化
958090 修正:System.EnterpriseServices.TransactionProxyException 例外在交易完成時被觸發時,無法從其他應用程式域捕捉到
958252 修正:當你在 .NET Framework 2.0 Service Pack 1 (SP1) 中使用 Msdatasetgenerator 自訂工具時,第三方 .NET 資料提供者產生程式碼的 scale 值和精確度值會與你設定的值不同
960442 修正:當你使用 BinaryFormatter 物件在 .NET Framework 2.0 Service Pack 2 或 .NET Framework 3.5 Service Pack 1 的組合語言中序列化和反序列化一般型別時,會收到異常錯誤訊息
960754 修正:當你參考 Transaction.Current.TransactionInformation 物件時,會收到 ObjectDisposedException 例外
961847 修正:當你重新編譯一個基於 .NET Framework 3.5 Service Pack 1 的專案後,以設計模式查看頁面時出現錯誤訊息:「錯誤建立控制權 – 'ControlInstanceName [text]' 無法設定在屬性 'PropertyName' 上」
961864 修正:當您存取支援 ASP.NET 2.0 AJAX 的網站時,網頁客戶端可能會遇到多種問題
961870 修正:當你執行需要 CLR 載入 .NET Framework 2.0 Service Pack 2 混合模式組件的應用程式時,就發生記憶體洩漏
961881 修正:當你啟動一個在 CLR 上執行的應用程式時,會發生存取違規
961884 修正:當你更改App_Code資料夾、bin 資料夾或 Global.asax 檔案後,初次向 ASP.NET 網站請求時,效能會非常緩慢
961885 修正:當你執行呼叫 XslCompiledTransform.Transform 方法的 CLR 應用程式時,會收到存取違規錯誤
961901 修正:當你從 .NET Framework 2.0 SP2 基礎的 Windows 表單返回編輯欄位時,你為編輯欄位設定的特定 IME 模式可能會消失。修正:當你從 .NET Framework 2.0 SP2 基礎的 Windows 表單回到編輯欄位時,你為編輯欄位設定的特定 IME 模式可能會消失
961902 修正:當你編譯包含多個應用程式資源檔案的 ASP.NET 專案時,會出現錯誤訊息:「mscorlib.dll 發生了 'System.ArgumentException' 類型的 first chance 例外」
962351 修正:當你使用 Internet Explorer 8.0 的標準模式來查看具有動態選單的 ASP.NET 網頁時,彈出選單不會顯示
962890 修正:當基於 .NET Framework 2.0 的應用程式反覆呼叫 XmlTextReader.Read 函式時,出現錯誤訊息:「第 171 行的『Permission』start 標籤與 'PermissionRead' 的終結標籤不符」
963676 修正:CLR 會因致命的執行引擎錯誤而失敗,且當你使用 .NET Framework 2.0 Service Pack 2 執行應用程式時會當機
967114 修正:當你使用 System.Data.DataTable.InsertRow 方法或其他 .NET Framework 2.0 應用程式中任何超載方法插入資料表時,會出現錯誤訊息:「算術運算導致溢位」
967613 修正:監控事件日誌的應用程式在呼叫 System.Diagnostics.EventLog 類別的 Dispose 方法時當機
967615 修正:基於 .NET Framework 2.0 SP2 的應用程式或基於 .NET Framework 3.5 SP1 的應用程式,無法正確處理由 WindowsIdentity 物件建立的安全句柄物件
967812 有一個熱修正檔可用,更新斯洛伐克、斯洛維尼亞及土耳其的 System.Globalization.RegionInfo 類別中部分屬性
968108 解決方法:當您存取部署在網路農場中的 ASP.NET 2.0 AJAX 啟用網站時,網頁用戶端會當機或遇到意外行為
968249 修正:當你使用 Type Library Exporter 從 .NET Framework 2.0 Service Pack 2 中的 CLR 組合語言產生型別庫時,會產生錯誤的實例大小
968392 如果在 Visual Studio 2005 或 Visual Studio 2008 安裝 .NET Framework 2.0 SP2 或 .NET Framework 3.5 SP1 後,ImageUrl 屬性設定為 ImageUrl 屬性,則不會顯示錯誤訊息及超連結控制項:「物件參考未設定為物件實例」
968432 修正:System.InvalidOperationException 例外發生在你執行基於 .NET Framework 2.0 SP2 或 .NET Framework 3.5 SP1 的網頁應用程式時
968556 修正:XslCompiledTransform.Transform 方法在 .NET Framework 2.0 中沒有一個可同時接受 XPathNavigator 與 XmlResolver 物件作為參數的超載方法。
968760 在 Microsoft .NET Framework 2.0 中,受管理應用程式擁有大量的執行緒句柄和事件句柄
969364 修正:使用Visual Web Developer中的「生成本地資源」工具產生本地資源檔案時,嵌入 ASP.NET 2.0網頁中的程式碼區塊會消失
969612 ASP.NET 2.0 熱修正整合套件說明:2009 年 4 月
969722 修正:「ASP.NET Apps v2.0.50727 (__Total__) \Sessions Active」效能計數器在安裝 Microsoft .NET Framework 3.5 Service Pack 1 後顯示異常高的數值
969836 修正:在基於 .NET Framework 2.0 的 Windows Forms 應用程式中,工作執行緒在呼叫 Control.Invoke 方法時可能會被阻擋,即使 GUI 執行緒處於閒置狀態
970350 修正:當 System.Drawing.FontConverter 物件在 .NET Framework 2.0 SP2 或 .NET Framework 3.5 SP1 中呼叫 FontFamily.Families 屬性時,出現異常錯誤訊息:「記憶體不足」
970510 修正:當你執行基於 .NET Framework 3.5 SP1 的應用程式時,會發生 TypeLoadException 異常
970924 修正:使用 CreateType 方法的應用程式,隨著你在 .NET Framework 2.0 SP2 的動態組合模組中加入更多型別物件,效能會下降
971030 修正:當你執行基於 .NET Framework 2.0 的應用程式,且在 LCG 方法中以虛擬呼叫 IList<T>、IEnumerable<T> 或 ICollection<T> 介面時,會發生存取違規
971169 修正:當你執行 ASP.NET 2.0 網頁應用程式時,如果全域資源檔名包含 culture 名稱「zh-Hant」,會跳出錯誤訊息
971601 修正:監控應用程式的效能計數器在應用程式退出並重新啟動時停止回應,且你在執行 .NET Framework 2.0 的電腦上收到 System.InvalidOperationException 例外
971988 修正:當你執行基於 .NET Framework 2.0 的多領域應用程式,使用物件的終結器啟動 ThreadPool 方法時,CPU 使用率會大幅增加
971993 說明該熱修補程式說明,使 ASP.NET 網頁應用程式在使用會員服務提供者時能支援基於理賠的身份
972259 修正:一個基於 .NET Framework 2.0 SP2 的程式執行緒在啟用並行垃圾回收時會暫停很長一段時間
972848 修正:當檔案收集的資訊並非 .NET Framework 2.0 中的 MiniDumpWithFullMemory 類型時,迷你傾印檔案產生速度較慢且檔案大小比預期大

欲了解更多關於雙分支服務的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:

960043 .NET Framework 2.0 服務包 2、.NET Framework 3.0 服務包 2 及 .NET Framework 3.5 服務包 1 的雙分支服務

因應措施

要解決這個問題,請遵循以下步驟。

步驟 1

安裝熱修復975954。 要下載MSI更新,請造訪以下MSDN網頁:

http://code.msdn.microsoft.com/KB975954/Release/ProjectReleases.aspx?ReleaseId=3839
          

步驟 2

修理產品。 我們可以自動為您修復產品,或者您也可以自行修復產品。

幫我修理

要自動執行產品修復,請點擊 「修復」 按鈕。 接著在檔案下載對話框點選執行,然後依照修正精靈的步驟操作。

注意:此巫師僅提供英文版本。 不過,自動修正程式也適用於 Windows 的其他語言版本。

注意:如果你不在有問題的電腦上,可以把自動修復的程式存到隨身碟或光碟,這樣就能在有問題的電腦上執行。

讓我自己修

若要自行修復產品,請從提升的命令提示字元輸入以下適當的命令列:

  • 如果你只安裝了 .NET Framework 2.0 Service Pack 2,請執行以下指令:
    msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}此指令修復.NET Framework 2.0 SP2 產品層。

  • 如果你安裝了 .NET Framework 3.0 Service Pack 2,請執行以下指令:
    msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}

    msiexec /f {A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}這些指令修復.NET Framework 2.0 SP2 與 .NET Framework 3.0 SP2 產品層。

  • 如果你安裝了 .NET Framework 3.5 Service Pack 1,請執行以下指令:
    msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}

    msiexec /f {A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}

    msiexec /f {CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}這些指令修復.NET Framework 2.0 SP2、.NET Framework 3.0 SP2 以及.NET Framework 3.5 SP1 產品層。

當你執行這些指令修復產品層時,該產品層的所有功能 (.NET Framework 2.0 SP2、.NET Framework 3.0 SP2 和 .NET Framework 3.0 SP1) 都會重新評估安裝狀態。

這樣就能解決由基線器問題造成的問題,讓更新能成功套用其有效載荷。

欲了解更多如何執行使用提升權限的指令,請造訪以下 Microsoft 網頁:

http://windows.microsoft.com/en-US/windows7/Command-Prompt-frequently-asked-questions
              

步驟3

你可能需要重新安裝已更新並更換的熱修丁,如「原因」部分所述。 要判斷是否需要重新安裝更新的熱修正,請查看知識庫文章中「熱修正更換資訊」部分,針對你安裝的熱修正。

更多資訊

欲了解更多 Windows 安裝程式支援的命令列交換器資訊,請造訪以下 MSDN 網頁:

命令列選項 欲了解更多關於 Windows 安裝程式的資訊,請造訪以下 MSDN 網頁:

關於 Windows 安裝程式