使用MATLAB编译器运行时(mcr)我已经创建了选择FrameWork 4.0版的熵.d的dll。我已将此dll添加到c#引用中。此外,我必须添加MWArray.dll来创建方法所需的参数。
> public class Entropy : IDisposable
> {
> //Constructors,Finalize,Methods,Class Members are located here.
> }
> using com.Entropy;
> using MathWorks.MATLAB.NET.Arrays;
> using MathWorks.MATLAB.NET.Utility;
这是我的问题。我试图获得像
这样的Entropy类的实例 Entropy ep = new Entroyp();
然而它引发了一个例外:
> The type initializer for 'com.Enthropy.Enthropy threw an exception.
此外,当我尝试创建MWNumericArray
时,它会抛出相同的异常。我试图将我的项目的框架版本更改为4.0,但它没有用。这个错误的原因是什么?
此外,我查看了下面的链接。
答案 0 :(得分:1)
好。安装MCR后,我在开始时就完成了所有工作。创建了entropy.m的dll。然后我打开了我的项目的早期版本,我的意思是我删除了添加的引用; MWArray.dll
和Entropy.dll。之后我将这些引用添加到我的项目中。现在它工作正常。
重点:
1)在创建任何MatLab函数 INSTALL MCR 的dll文件之前。
2)创建DLL时尝试为类和项目指定不同的名称。我的意思是,如果您创建名称为Entropy.prj
的项目,请不要将您的类名创建为Entropy
。
3)不要忘记将MWArray.dll
添加到您的项目中。它的位置是
(..// Program Files(x86)// MATLAB \ MATLAB CompilerRuntime \ v81 \ toolbox \ dotnetbuilder \ bin \ win32 \ v2.0)