' MathWorks.MATLAB.NET.Utility.MWMCR'的类型初始值设定项。抛出一个例外

时间:2017-01-04 12:22:38

标签: c# matlab exception

MathWorks.MATLAB.NET.Utility.MWMCR'的类型初始值设定项。抛出异常:

我从c#调用,这是我的DLL中由MatLab Library Compiler编译的函数。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using AddVidToDB;

namespace AddToDb
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 obj = null;
            // MWNumericArray input = null;
            MWNumericArray output = null;
            MWArray[] result = null;
            MWArray input = null;

            try
            {
                // Instantiate your component class.
                obj = new Class1();

                // Invoke your component.
                string VidName = "080626439d8809181a1857685bdc645.mp4";
                input[0] = VidName;
                obj.AddVidToDB(input);
            }
            catch
            {
                throw;
            }
        }
    }
}

当我运行代码时,它会出现异常:

  

"' AddVidToDB.Class1'的类型初始值设定项抛出异常。"。   内部异常说:"' MathWorks.MATLAB.NET.Utility.MWMCR'的类型初始值设定项。抛出异常。"。

堆栈跟踪说:

  

在AddVidToDB.Class1..ctor()      在D:\ MSc \ Project \ SurfSearchVid \ AddToDb \ AddToDb \ AddToDb \ Program.cs中的AddToDb.Program.Main(String [] args):第40行      在System.AppDomain._nExecuteAssembly(RuntimeAssembly程序集,String [] args)      在System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String [] args)      在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()      在System.Threading.ThreadHelper.ThreadStart_Context(对象状态)      at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)      在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)      在System.Threading.ThreadHelper.ThreadStart()

那么我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

您必须在计算机上安装运行时库才能调用MCR dll。 如果有,请检查PATH(环境变量)是否包含运行时路径。 您可以使用以下命令检查运行代码的用户是否具有正确的路径变量:

Environment.GetEnvironmentVariable("Path");

变量必须包含以下内容:

C:\Program Files\MATLAB\MATLAB Compiler Runtime\v79\runtime\{win32|win64};