当前位置: 首页 > 编程语言 > C#

从MATLAB共享发布.NET程序集

时间:2023-04-11 00:13:04 C#

从MATLAB发布.NET程序集我正在开发一个与C#dll库接口的小型MATLAB项目。MATLAB文档允许您按照此处所述加载程序集:http://uk.mathworks.com/help/matlab/ref/net.addassembly.html?id=0s_tid=gn_loc_drop和http://uk.mathworks.com/help/MATLAB/matlab_external/an-assembly-is-a-library-net-classes.html我的调用如下:NET.addAssembly('C:MyLibrary.dll');一切都很好,我什至可以通过附加到MATLAB进程来调试VS,但是有一个小问题。没有“removeAssembly”方法可以断开程序集与MATLAB进程的连接。如果我想在VS中进行更改,我必须重新启动MATLAB才能解锁DLL,这实际上是一种痛苦。我什至尝试使用解锁软件,但没有成功。MATLAB冻结。有谁知道如何处理这个?无法卸载组件,这是已知的限制之一。您可以使用系统调用和Matlab命令行选项从Matlab本身启动一个新的Matlab实例。然后您可以在新实例中测试.NET库。.NET库在测试后关闭新实例时发布。使用此解决方法,您无需完全重新打开Matlab。不要在主Matlab实例中加载.NET程序集。在WindowsPC上打开一个新的Matlab实例(整个IDEGUI):log_str='-logfile"C:Templogfile.txt"';system_str=['matlab.exe-nosplash'log_str];系统(system_str);通过-r在新的Matlab实例中自动执行m-File,而不使用带有-nodesktop的IDEGUI,并在测试后让新实例关闭:log_str='-logfile"C:Templogfile.txt"';my_file='C:Temptest.m';system_str=['matlab.exe-nosplash-nodesktop-r"run('''my_file'''),pause(2),exit"'log_str];系统(system_str);日志文件记录来自Matlab实例的控制台输出。它是可选的,但有助于测试。如果您希望子实例是异步的(即返回主Matlab实例的句柄),您可以将“&”添加到system_str的末尾。以上是C#学习教程:MATLAB发布的.NET程序集分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: