How to fix NET C# System.TypeInitializationException using a DLL built by Matlab on 64bit Windows 8?
4 views (last 30 days)
Show older comments
I'm not able to create an application on my Computer that references a .NET Assembly built using Matlab Builder NE. I'm on Windows 8 64bit, have a 64bit Matlab 2013a and I'm using Visual Studio 2012.
I followed the instructions in the Video for the makeSqr example: http://www.mathworks.de/videos/using-matlab-builder-ne-68758.html
It all works fine except I', missing the Mathworks .NET MWArray API in the GAC list of assemblies. I manually add a reference to D:\Program Files\MATLAB\MATLAB Compiler Runtime\v81\toolbox\dotnetbuilder\bin\win64\v2.0\MWArray.dll
The program compiles fine, but Initializing my class obj = new MLTest();
i get the following exception: System.TypeInitializationException wurde nicht behandelt. HResult=-2146233036 Message=Der Typeninitialisierer für "com.demo.MLTest" hat eine Ausnahme verursacht. Source=demo TypeName=com.demo.MLTest StackTrace: bei com.demo.MLTest..ctor() bei BuilderNEMainApp.Program.Main(String[] args) in c:\Users\Irgenfs\Documents\Visual Studio 2012\Projects\BuilderNEMainApp\BuilderNEMainApp\Program.cs:Zeile 33. bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() bei System.Threading.ThreadHelper.ThreadStart_Context(Object state) bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ThreadHelper.ThreadStart() InnerException: System.TypeInitializationException HResult=-2146233036 Message=Der Typeninitialisierer für "MathWorks.MATLAB.NET.Utility.MWMCR" hat eine Ausnahme verursacht. Source=demo TypeName=MathWorks.MATLAB.NET.Utility.MWMCR StackTrace: bei com.demo.MLTest..cctor() InnerException: System.TypeInitializationException HResult=-2146233036 Message=Der Typeninitialisierer für "MathWorks.MATLAB.NET.Arrays.MWArray" hat eine Ausnahme verursacht. Source=MWArray TypeName=MathWorks.MATLAB.NET.Arrays.MWArray StackTrace: bei MathWorks.MATLAB.NET.Utility.MWMCR..cctor() InnerException: System.BadImageFormatException HResult=-2147024885 Message=Es wurde versucht, eine Datei mit einem falschen Format zu laden. (Ausnahme von HRESULT: 0x8007000B) Source=MWArray StackTrace: bei MathWorks.MATLAB.NET.Arrays.MWArray.mclmcrInitialize2(Int32 primaryMode) bei MathWorks.MATLAB.NET.Arrays.MWArray..cctor() InnerException:
Any ideas how to fix this?
0 Comments
Answers (1)
Friedrich
on 22 Nov 2013
Hi,
sounds like a bittedness issues. Is your VS 2012 Project configured as x64 project? If not, please do so and recompile.
2 Comments
Friedrich
on 25 Nov 2013
"Es wurde versucht, eine Datei mit einem falschen Format zu laden. "
Indicates some bittedness issue. Can you run a compiled exe (compiled with MATLAB compiler directly) on that machine? If yes, can you try setting up a C/C++ project and incoorperate a DLL compiled with MATLAB COmpiler (see the matrixdriver example in the doc) and see if that works.
See Also
Categories
Find more on Deploy to .NET Applications Using MWArray API in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!