We have a class that is a basic wrapper around a native 3rd party C
DLL.
We created an NUnit test against the wrapper and it passes fine the
first time. However, when we run the tests again, it always fails
with a NullReferenceException within the native DLL (or on the call to
it, not sure which).
Since NUnit works by creating a new AppDomain each time it runs a
series of tests, it seems weird that the native DLL appears to be
persistent in memory across test runs within NUnit--across separate
AppDomains.
Is there any way for the TearDown to forcibly unload a DLL from
managed memory? We're calling the dll's exported dispose routine
which supposedly frees all the resources used by the dll, but that
doesn't appear to address this issue.
We have the same issue if we try to run multiple tests within NUnit
since the SetUp and TearDown try to create a new wrapper--the DLL
isn't getting fully unloaded.
Thanks,
Sam
"Peter Huang" [MSFT] - 16 Jun 2005 09:33 GMT
Hi
Here is link about PInvoke to load/free library which have something do
with your problem.
PInvoke Library Load/Unload Behavior ¨C Freeing Unmanaged Libraries
http://blogs.msdn.com/robgruen/archive/2004/11/12/256199.aspx
But NUnit is a third party tool, I think you may try to consult the
developers directly.
http://nunit.org
Hope this helps.
Best regards,
Peter Huang
Microsoft Online Partner Support

Signature
Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
Samuel R. Neff - 16 Jun 2005 13:45 GMT
Thanks Peter, the load/unload blog entry looks like it will do the
trick.
Best regards,
Sam
>Hi
>
[quoted text clipped - 16 lines]
>Get Secure! - www.microsoft.com/security
>This posting is provided "AS IS" with no warranties, and confers no rights.
"Peter Huang" [MSFT] - 17 Jun 2005 08:06 GMT
Hi
You are welcomed!
Best regards,
Peter Huang
Microsoft Online Partner Support

Signature
Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.