NET assembly unload conundrum
    10 views (last 30 days)
  
       Show older comments
    
I am trying to develop a C# class in Visual Studio and test it in Matlab. I can load the NET assembly and use it okay, but a problem arises if I change the NET code.
If I load the NET assembly into Matlab from the Visual Studio debug folder I can't rebuild the assembly in Visual Studio.
If I copy the dll into a local folder and load into Matlab from there I can only load once. Subsequent times I get the following error: "The process cannot access the file because it is being used by another process." In other words it won't let me copy the new dll because the old one is still in use.
So at the moment if I change the assembly code I have to close Matlab and reopen it to test the new assembly. This is adding quite a lot of time to my development.
I believe my version of Matlab (2010a) cannot unload NET assemblies. Does anyone know of another way around this?
0 Comments
Accepted Answer
  Fab
 on 19 Jul 2013
        According to Matlab's support rebooting is the only solution to this problem for the current Matlab Version (8.1.0.604, R2013a):
"The ability to unload an assembly is not available in MATLAB at this point of time. This may be addressed in one of the future releases. Currently, to work around this issue, restart MATLAB."
Somehow shocking, isn't it? (see also http://www.mathworks.com/matlabcentral/newsreader/view_thread/330604)
0 Comments
More Answers (5)
  imme werus
 on 24 Apr 2017
        
      Edited: imme werus
 on 24 Apr 2017
  
      I think it is also the same for 2016b, is that true ?
0 Comments
  Markus Finkeldey
 on 10 Oct 2017
        
      Edited: Markus Finkeldey
 on 10 Oct 2017
  
      It seems that the .NET support of Matlab is very limited even in R2017a, makes it a hell of a workload if you want to access a c# library instead of a pure c library.
  Travis Leith
 on 30 Oct 2019
        This is still an issue going into 2020 :(
3 Comments
  Roofus Milton
      
 on 15 Nov 2019
				Yup. Wolfram has great integration. I suspect their approach creates a new AppDomain and subsequently loads the requested assemblies. LINQPad has remained my default testing tool.
See Also
Categories
				Find more on MATLAB Compiler SDK in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







