電腦又出問題了…這次看來是 .Net Framework 有問題?


家裡的電腦又出問題了…之前硬體上的問題,好不容易確認是電源供應器的錯,搞了一段時間,也終於處理好了;結果前幾天,忽然又變成軟體上出問題了…

而這邊也先申明,這篇純粹是紀錄發生過問題,並沒有成功地修好…而且 Windows 本身的系統還原看來也沒用,最後是拿之前硬碟壞掉時候的備份,重新整理後拿來用的。

這次是發生在 Heresy 把 Windows 10 更新到 1511(10586、TH2)後一段時間後發生的事情。基本上,已經忘了到底做了什麼事(記得只有移除 Android 開發相關的東西?)?不過之後的下場是 Visual Studio 2015 忽然就開不起來了。

錯誤訊息類似:

失敗的應用程式名稱: devenv.exe,版本: 14.0.23107.0,時間戳記: 0x559b7ead
失敗的模組名稱: KERNELBASE.dll,版本: 10.0.10586.0,時間戳記: 0x5632da1c
例外狀況代碼: 0xe0434352
錯誤位移: 0x000bd8a8
失敗的處理程序識別碼: 0xf28
失敗的應用程式開始時間: 0x01d126d1549b25c3
失敗的應用程式路徑: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
失敗的模組路徑: C:\WINDOWS\SYSTEM32\KERNELBASE.dll
報告識別碼: 3925a9e1-1904-4d9f-b472-6a5ac86701d5
失敗的套件完整名稱: 
失敗的套件相關應用程式識別碼: 

以及

應用程式: devenv.exe
Framework 版本: v4.0.30319
描述: 處理序已終止,因為有未處理的例外狀況。
例外狀況資訊: System.BadImageFormatException
   於 Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean)
   於 Microsoft.VisualStudio.Services.VsTask.GetResult()
   …

網路上查了一下,有人有類似的問題,結果最後是重新安裝 .Net Framework 才修好的。但是…Windows 10 的 .Net Framework 根本沒辦法重裝啊…就算是最新的 4.6.1,安裝程式也都無法安裝、維護。

而儘管微軟有「.NET Framework Cleanup Tool」(官方說明)和「Microsoft.NET Framework 修復工具」(官網),但是看來在 Windows 10 上,也都不能用…

一開始還不死心,後來東弄西弄,發現其他 .Net 的程式有的也出錯了…

像是 NVIDIA GeForce Experience 的「Share」(之前的「Shadow Play」),或是微軟的 Image Composite Editor(官網),也都開始無法執行了…

以 GeForce Experience 的 Share 來說,他的錯誤訊息如下:

失敗的應用程式名稱: nvosc.exe,版本: 2.8.0.80,時間戳記: 0x563ab399
失敗的模組名稱: mscorlib.ni.dll,版本: 4.6.1038.0,時間戳記: 0x5615d295
例外狀況代碼: 0x80131623
錯誤位移: 0x000000000048f8b2
失敗的處理程序識別碼: 0x2ea8
失敗的應用程式開始時間: 0x01d127693d73a603
失敗的應用程式路徑: C:\Program Files (x86)\NVIDIA Corporation\OSC\nvosc.exe
失敗的模組路徑: C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\mscorlib\e24742a3939bece9db8105d99720b0e0\mscorlib.ni.dll
報告識別碼: a65ef1e8-1d6e-43e2-9515-33fdf92d0943
失敗的套件完整名稱: 
失敗的套件相關應用程式識別碼: 

以及:

應用程式: nvosc.exe
Framework 版本: v4.0.30319
描述: 應用程式透過 System.Environment.FailFast(string message) 要求終止處理序。
訊息: 無法擷取此框架的安全性描述元。
堆疊:
   於 System.Environment.FailFast(System.String)
   於 System.Security.CodeAccessPermission.Assert()

其他還有一些 .Net 的程式也不能執行,其中看來有不少是死在 mscorlib.ni.dll 的。不過就算 Heresy 從別台可以正常運作的電腦把這個檔案撈來用,也還是不能用。

不過,這邊曾經一度靠著 Native Image Generator(ngen、MSDN),在「C:\Windows\Microsoft.NET\Framework\v4.0.30319」這個路徑下,執行「ngen /update」,讓他去重建這些 .Net 的東西,而一度讓 GeForce Experience Share 可以用。

但是…後來也不知道是怎樣,Visual Studio 終於弄到可以跑了,結果 NVIDIA GeForce Experience Share 等 .Net 的程式又不能動了… orz

最後,是變成在開機的時候,「Windows Presentation Foundation Font Cache 3.0.0.0」這項服務會當掉…

到這邊,Heresy 也終於死心,決定拿之前的系統備份,來重新升級到 Windows 10 1511 了…而目前看來,重新整理的系統並沒有問題。

總之,這邊就記錄一下,下次遇到同樣的問題,就不要浪費時間了,認命重來吧… orz

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料