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版本有关)

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值