高版本與.net4.5兼容錯誤:Attempted to read or write protected memory.

由於電腦安裝的了兩個不同版本的.Net,導致之前所有的基於VS2012的Console程序都無法調試。但編譯的exe可以正常運行。

調試過程提示如下錯誤:

Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

這個錯誤是嘗試讀取或寫入受保護的內存。這通常表明其他內存已損壞。我猜測是由於讀取Win32的DLL但沒有釋放導致的錯誤。如下圖:

嘗試以下各種方案均無效

  1. 更換更高版本的Framework版本。
  2. 運行netsh winsock reset
  3. 刪除所有引用
  4. 修改爲X86的編譯版本

最後通過如下配置解決了問題:

Debug 標籤 -> 在Enable Debuggers中 -> 選擇Enable native code debugging

保存項目,F5調試,恢復正常。

總結一下:

這個問題似乎與.NET 4.5.1有關,4.5與更高版本的Frameword有兼容問題。後續搜索,可能下載並安裝.NET 4.5.2也能解決問題。但還沒有嘗試過。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章