Ich versuche eine Matlab (R2010b) Anwendung zu kompilieren, die ein .NET Modul verwendet, aber ich habe ein Problem mit der Inkompatibilität zwischen dem MCR und dem .NET Modul:
Wenn ich die Assembly aus dem Matlab-CLI lade, funktioniert alles einwandfrei, aber sobald ich die App kompiliert habe und sie von cmd.exe ausgeführt habe, wird ein Fehler ausgegeben, der besagt, dass die Assembly mit einer Laufzeit erstellt wird, die aktueller ist geladen. Ich denke, dass Matlab R2010b mit Visual Studio 2008 gebaut wurde und glaube, dass dies das Problem ist, aber ich frage mich, ob jemand eine Lösung für das Problem hat?
Die Lösung besteht darin, eine Anwendungskonfigurationsdatei (foo.exe.config für die Anwendung foo.exe) neben der kompilierten exe mit dem folgenden Eintrag bereitzustellen:
%Vor% Die MATLAB .NET-Schnittstelle wurde mit .NET Framework 2.0 erstellt, was bedeutet, dass die 2.0 CLR geladen wird, wenn keine App-Konfigurationsdatei vorhanden ist. Wenn sie in MATLAB ausgeführt werden, geben die <supportedRuntime>
-Einträge aus der Konfigurationsdatei MATLAB an, 4.0 CLR zu laden, falls verfügbar.
Tags und Links .net matlab matlab-deployment matlab-compiler