Remove Assembly that was loaded with addAssembly

How do I remove an assembly that was loaded with addAssembly?
Situation: I installed an assembly in the GAC and loaded it into MATLAB. now im doing some integration tests with the same dll but loaded from a different place in the file system and MATLAB is giving me a warning and i cannot step into the dll source.
CODE:
NET.addAssembly('C:\foo\foo.dll');
Warning: Assembly C:\Windows\Microsoft.Net\assembly\GAC_MSIL\foo\v4.0_1.0.0.0__772795e52c232a80\foo.dll' has already been added from location 'foo'
How do i get fix this? I have already removed dll from GAC

2 Comments

The documentation says you cannot unload. I end up restarting matlab each time.
Can I just ignore this warning?

Sign in to comment.

Answers (1)

you can asign the result of add assembly to variable and check for it before adding the assembly
if isempty(which('asm'))
asm = NET.addAssembly('C:\foo\foo.dll');
end

1 Comment

I still get the following error when I add the isempty call
Warning: Assembly 'xx' has already been added from location 'C:\Users\yy\zz.dll'.
because
isempty(which('asm'))
is true.

Sign in to comment.

Asked:

on 28 Mar 2014

Commented:

KAE
on 18 Apr 2022

Community Treasure Hunt

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

Start Hunting!