背景:Winform/Wpf開發的應用,因需要調用matlab生成的算法而安裝了matlab2015b運行環境。應用平時正常運行,偶爾會出現環境崩壞導致程序出錯(常見win10家庭版、企業版)。自己電腦(win10專業版)未出過這類問題,客戶的機器偶爾會出現這個錯誤。
報錯信息
System.Exception: MWArray assembly failed to be initialized
---> System.Exception: The MATLAB Runtime instance could not be initialized
---> System.ApplicationException: The MATLAB Runtime instance could not be initialized segv - SEVERE ERROR 在 MathWorks.MATLAB.NET.Utility.MWMCR..ctor(String componentId, String componentPath, Stream embeddedCtfStream, Boolean isLibrary) --- 內部異常堆棧跟蹤的結尾 --- 在 MathWorks.MATLAB.NET.Utility.MWMCR..ctor(String componentId, String componentPath, Stream embeddedCtfStream, Boolean isLibrary)
處理
試過卸載重裝matlab環境,有時有效有時無效,試過重裝系統有效,但是過於費時。一直以為是其他電腦操作系統穩定性導致的問題(因為自己的電腦從沒出現過)因此錯誤排除找錯了方向。
實則是matlab再某個目錄生成的臨時文件夾導致調用失敗,但是並不是所有操作系統都會導致這個錯誤。例如我本機裝的win10專業版,同樣存在此臨時文件夾但並不會導致程序無法運行。下面是臨時文件的路徑。
C:\Users\Administrator\AppData\Local\Temp\Administrator\mcrCache9.0
需要刪除的就是mcrCache9.0這個文件夾。
注意:
1.路徑中的2個Administrator是當前登錄的用戶,如果用戶名發生變化則同樣要選擇相關用戶的路徑。
2.mcrCache9.0根據安裝的matlab運行環境的版本差異會不同,也可能是mcrCache9.3
路徑來自:MWArray assembly failed to be initialized - (mathworks.cn)
