Groups | Blog | Home
all groups > vb.net data > september 2005 >

vb.net data : Unload a dll called via assembly


Andy
9/24/2005 12:00:00 AM
Hi everybody,

i´m working on an application that loads different modules (dll files)
via an assembly.
I check the build version in that dll file and if a newer version
exists, i want to update the file. There´s only one problem: once loaded
the library, i´m not able to delete it while the application is running.

Current function:

Dim AssemblyToLoad As [Assembly]
Dim ClassLibraryModule As [Module]
Dim FormType As Type
Dim AssemblyForm As Form
Dim PublicField As FieldInfo

AssemblyToLoad = [Assembly].LoadFrom(ModuleName)
ClassLibraryModule = AssemblyToLoad.GetModule(ModuleName)

FormType = ClassLibraryModule.GetType(ModuleName & ".ClassMain")

PublicField = FormType.GetField("VersionBuild")

return PublicField.GetValue(PublicField))

Application.DoEvents()

If the return value of the function is smaller as the VersionBuild of
the server dll, the dll file should be updated. But as long as the
program is running, the dll file is write protected.

How can i unload the assembly so the dll file isnt write protected anymore?

Please help!
CT
9/25/2005 12:00:00 AM
Hi Andy,

You can't unload an assembly. However, you can work with application
domains, which can be unloaded. So, load the assembly in a new application
domain and unload the domain when you want to unload the assembly. Check ut
the AppDomain class in the MSDN help docs.

--
Carsten Thomsen
Enterprise Development with VS .NET, UML, AND MSF
http://www.apress.com/book/bookDisplay.html?bID=105
Communities - http://community.integratedsolutions.dk

[quoted text, click to view]

AddThis Social Bookmark Button