NET assembly unload conundrum

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?

 Respuesta aceptada

Fab
Fab el 19 de Jul. de 2013

0 votos

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."

Más respuestas (5)

Cameron
Cameron el 2 de Feb. de 2016

0 votos

I am also having this same problem with R2015b. Any resolution??
Ivan
Ivan el 19 de Jul. de 2016

0 votos

The same problem in R2016a
imme werus
imme werus el 24 de Abr. de 2017
Editada: imme werus el 24 de Abr. de 2017

0 votos

I think it is also the same for 2016b, is that true ?
Markus Finkeldey
Markus Finkeldey el 10 de Oct. de 2017
Editada: Markus Finkeldey el 10 de Oct. de 2017

0 votos

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.

1 comentario

Paul Kelly
Paul Kelly el 10 de Oct. de 2017
True. For me the real issue was that because I was developing C# applications and testing them using Matlab, every time I made a change I had to restart Matlab. The answer was to find other ways to test the C# code. It was a pity because Matlab gave me a lot of possibilities.

Iniciar sesión para comentar.

Travis Leith
Travis Leith el 30 de Oct. de 2019

0 votos

This is still an issue going into 2020 :(

3 comentarios

Paul Kelly
Paul Kelly el 30 de Oct. de 2019
:(
Roofus Milton
Roofus Milton el 15 de Nov. de 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.
Carlo
Carlo el 16 de Feb. de 2024
Still a problem in matlab 23!

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB Compiler SDK en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 9 de Abr. de 2013

Comentada:

el 16 de Feb. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by