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()
那么我该如何解决这个问题呢?
答案 0 :(得分:0)
您必须在计算机上安装运行时库才能调用MCR dll。 如果有,请检查PATH(环境变量)是否包含运行时路径。 您可以使用以下命令检查运行代码的用户是否具有正确的路径变量:
Environment.GetEnvironmentVariable("Path");
变量必须包含以下内容:
C:\Program Files\MATLAB\MATLAB Compiler Runtime\v79\runtime\{win32|win64};