前兩天碰到了一個惡心的問題:本機安裝的VS2013環境突然不能Build任何程序了,Build之后就會卡住,過一段時間之后顯示Build Failed。VS2010環境能Build,但是跑起來會報莫名其妙的錯誤。
Event Log里能查到的內容為下面兩條:
Application: MSBuild.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error in the .NET Runtime at IP 61816AFA (61800000) with exit code 80131506.
以及
Faulting application name: MSBuild.exe, version: 12.0.40629.0, time stamp: 0x5590a5cf
Faulting module name: clr.dll, version: 4.7.2558.0, time stamp: 0x59d413ce
Exception code: 0xc0000005
Fault offset: 0x00016afa
Faulting process id: 0x6ff8
Faulting application start time: 0x01d3b0f96edd3a3d
Faulting application path: C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: ac9a0144-1cec-11e8-82c1-509a4c1fef2e
Faulting package full name:
Faulting package-relative application ID:
調查了很久沒有結果,后來發現甚至基於.net framework的exe程序都打不開,Event Log里的錯誤如下:
Application: XXX.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error in the .NET Runtime at IP 56656AFA (56640000) with exit code 80131506.
以及
Faulting application name: XXX.exe, version: 1.0.0.0, time stamp: 0x595a0549
Faulting module name: clr.dll, version: 4.7.2558.0, time stamp: 0x59d413ce
Exception code: 0xc0000005
Fault offset: 0x00016afa
Faulting process id: 0x83b0
Faulting application start time: 0x01d3b103cd3f886d
Faulting application path: X:\XXX\XXX\XXX.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: 0b3083ac-1cf7-11e8-82c1-509a4c1fef2e
Faulting package full name:
Faulting package-relative application ID:
所以懷疑是.net framework的問題。根據路徑想重裝.net framework 4.0嘗試,本機系統為Windows 8.1。但是發現了新問題:Windows 8.1下安裝.net framework 4.5.1以下版本都會提示,本機已經包含了該版本,哪怕從控制面板把.net framework 4.5和4.5.1刪掉也不能安裝。
經過調查發現,.net framework 4.X向下兼容,也就是說安裝4.6或者4.7能代替低版本(順便一提,這種向下兼容只包含4.0以上,2.0和3.5不兼容),於是安裝了.net framework 4.6。最終問題解決了。
引起問題的原因至今不明。。。希望能幫到不幸碰到類似問題的朋友們。