前言

在其他电脑上运行c#与matlab混编的程序,一直出现bug“xxx初始值设置出现问题”(实例化MWArray时),可以看到同一个地方出现了三个问题,“MathWorks.MATLAB.NET.Utility.MWMCR的类型初始值设定项引发异常”,“MathWorks.MATLAB.NET.Arrays.MWNumericArray”的类型初始值设定项引发异常”,“找不到xxx.dll文件”。通过在网上向大神学习,把解决这个问题分为不同的情况。

一、运行的代码来源清晰并了解其环境搭建

C#与matlab混编代码涉及到matlab的版本问题,在matlab中编译.dll文件时不要选默认选项,并且记住自己的选择。在本机上跑通代码后,放到其他电脑上,要有相同版本的matlab,如果嫌装matlab麻烦,可以装对应版本的MCR。
MCR可以在官网单独下载,不需要破解。
官网下载地址:https://ww2.mathworks.cn/products/compiler/matlab-runtime.html?s_tid=srchtitle_matlab%20runtime_1,下载与原电脑matlab版本一致的安装即可。
在这里插入图片描述
现在就相当于在新电脑中的搭建好了环境,如果还有问题就修好两个地方。
1,解决方案平台X64、X86、AnyCPU,不确定自己的代码平台就都修改试一下。
2,右键项目->属性->应用程序->目标框架->选择.NET框架版本(一般默认电脑中最新版本,建议改为.NET Framework 4,亲测有效)

二、来源不明的代码遇到同样问题

对于下载的代码需要知道它原来的环境是怎样的,点击 引用->MWArray,查看属性,如图。
在这里插入图片描述
图中MWArray版本是2.19.0.0对应matlab2019,这样就知道了原来的编译环境。按照上述的步骤搭建好环境就解决了,值得一提的是matlab runtime2019官网下载的安装包少了文件没法用,如果需要这个版本的小伙伴,只能安装matlab2019了,安装matlab后已经包含了对应版本的runtime,不必单独安装这个。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐