compiled matlab .net assembly doesn't work on different computer

6 visualizzazioni (ultimi 30 giorni)
I have a MATLAB function that I compile to a .NET-Assembly. The matlab library is then called in a .net wpf application. When I run the compiled program on my two development computers, at home and at work, the program works. When I install the program on the development computers the program works.
But after installing the program on another machine the program exits with an error message.
I have created the compiled matlab library on matlab 2019b update 7 and installed the matlab runtime 2019b on the computer that should run the program.
I checked with the Dependency Report generator what functions are called . The function uses functions from the following toolboxes:
  • curve fitting
  • statistics
  • signal processing
  • statistics and machine learning
  • image processing
When my program didn't work with the matlab runtime, I deleted the runtime and installed matlab with all the toolboxes on the computer where I want to deploy my program. But the program still didn't work.
The .net application is targeted to x64 and runs on .net core 3.1. When the call to the matlab constructor is removed from the program the program works on the deployment computer. Besides .net core 3.1 the following .net frameworks are installed:
PSChildName Version
  • v2.0.50727 2.0.50727.4927
  • v3.0 3.0.30729.4926
  • Windows Communication Foundation 3.0.4506.4926
  • Windows Presentation Foundation 3.0.6920.4902
  • v3.5 3.5.30729.4926
  • Client 4.8.03761
  • Full 4.8.03761
  • Client 4.0.0.0
The MwArray.dll from matlab 2019b is deployed with the program.
So I can't think of anything else I could have done wrong. Does anyone have suggestions?
Below is the log of the error message:
2020-09-25 09:27:17.389 +02:00 [Information] Executable path:
2020-09-25 09:27:22.152 +02:00 [Error] System.Windows.Markup.XamlParseException: The invocation of the constructor on type 'MyProgram.ViewModels.MainViewModel' that matches the specified binding constraints threw an exception.
---> System.Exception: MWArray assembly failed to be initialized
---> System.Exception: The MATLAB Runtime instance could not be initialized
---> System.ApplicationException: The MATLAB Runtime instance could not be initialized
segv - SEVERE ERROR
at MathWorks.MATLAB.NET.Utility.MWMCR..ctor(String componentId, String componentPath, Stream embeddedCtfStream, Boolean isLibrary)
--- End of inner exception stack trace ---
at MathWorks.MATLAB.NET.Utility.MWMCR..ctor(String componentId, String componentPath, Stream embeddedCtfStream, Boolean isLibrary)
at MyMatlabNamespace.MyMatlabClass..cctor()
--- End of inner exception stack trace ---
at MyMatlabNamespace.MyMatlabClass..ctor()
at MyProgram.ViewModels.AppBootStrapper.<>c.<.ctor>b__21_8()

Risposte (2)

Mohammad Sami
Mohammad Sami il 28 Set 2020
You need to install the MATLAB runtime to use the .net assembly.
  3 Commenti
Robert Reijntjes
Robert Reijntjes il 28 Set 2020
In my question I already said I first installed the matlab runtime on the computer where I wanted to deploy the program. After that didn't work I removed the runtime and installed matlab. With matlab installed the program still didn't work.
I followed the instructions in the provided hyperlinks.
Mohammad Sami
Mohammad Sami il 28 Set 2020
Ok. I missed that part. A few other users seems to have received the same errors. See if any of them help you.
https://www.mathworks.com/matlabcentral/answers/505208-mwarray-assembly-failed-to-be-initialized
https://www.mathworks.com/matlabcentral/answers/264138-dotnet-matlab-runtime-instance-could-not-be-initialized

Accedi per commentare.


Image Analyst
Image Analyst il 28 Set 2020
Did the compilation create a file mccExcludedFiles.log? What is in it?
Do you call any applets, such as imtool, classification Learner, or any other things on the Apps tab? These can't be included in compiled code.
  1 Commento
Robert Reijntjes
Robert Reijntjes il 1 Ott 2020
The mccExcludedFiles.log file was completely empty and I did read the wiki page and tried following some of the suggestions.
But I managed to get my program working on the computer where the program should be deployed!
Yesterday I worked from home. There I have a newer version of matlab (2020b). The program I compiled with this newer version runs without errors.
Unfortunately I don't know what caused the error with the program created with matlab 2019b

Accedi per commentare.

Categorie

Scopri di più su Get Started with MATLAB Compiler SDK in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by