C#与MATLAB联合编程,出现The MATLAB Runtime instance could not be initialized解决方案

工作中使用到了C#与MATLAB联合编程,最近在使用过程中遇到一个奇怪的问题。前期完成代码的编译与调用均没有问题,突然一天在使用中提示The MATLAB Runtime instance could not be initialized

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)

反复检查机器的环境,也没有发现问题,因为使用的机器就是开发机器,不知原因何在。同时在C#中更新了MATLAB的动态库与MWArray.dll文件仍然存在该问题。

解决方案:

问题所在实则是matlab再某个目录生成的临时文件夹导致调用失败,但是并不是所有操作系统都会导致这个错误。例如我本机装的win11专业版,已出现多次该问题导致程序无法运行。下面是临时文件的路径。

C:\Users\Administrator\AppData\Local\Temp\Administrator\mcrCache9.5

将mcrCache9.5文件夹删除,再次运行程序可以正常运行了。(注意mcrCache9.5文件夹与你安装的MATLAB版本有关)

你可能感兴趣的:(matlab,开发语言)