2017-01-04 21 views
0

を投げた「MathWorks.MATLAB.NET.Utility.MWMCR」のタイプ初期化子が例外をスローしました:タイプ初期化子が例外

私はC#から呼び出すいます、私のDLLの関数はMatLabライブラリコンパイラでコンパイルされています。

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はAddToDb.Program.Main(文字列[] args)をで :\修士課程\プロジェクト\ SurfSearchVid \ AddToDb \ AddToDb \ AddToDb \ Program.cs:System.AppDomain._nExecuteAssembly(RuntimeAssemblyアセンブリ、String [] args)の System.AppDomain.ExecuteAssembly(String assemblyFile、Evidence assemblySecurity、String [] args)の 、Microsoft.VisualStudio .HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(オブジェクトの状態) System.Threading.ExecutionContext.RunInternal System.ThreadingでSystem.Threading.ExecutionContext.Runで(のExecutionContextのExecutionContext、ContextCallbackコールバック、オブジェクト状態、ブールpreserveSyncCtx) (のExecutionContextのExecutionContext、ContextCallbackコールバック、オブジェクト状態、ブールpreserveSyncCtx) で。 System.Threading.ThreadHelper.ThreadStartでExecutionContext.Run(のExecutionContextのExecutionContext、ContextCallbackコールバック、オブジェクトの状態) ()

だから私はこれをどのように修正するのですか?

答えて

0

MCR dllを呼び出すには、コンピュータにランタイムライブラリがインストールされている必要があります。 PATH(環境変数)にランタイムパスが含まれていることを確認してください。

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

Environment.GetEnvironmentVariable("Path"); 

を変数する必要がありますこのようなものが含まれています:あなたは、コードを実行するユーザーが正しいパス変数を持っている場合は使用して確認することができます

関連する問題