Wednesday, December 26, 2012

Load all referenced assemblies in C#

Following code loads all referenced assemblies of the application. This code goes to "bin" folder and finds all dlls. We could use reflection to do the same, but the problem is when you need assemblies on start up, because of the JIT(Just in time) mechanism of .NET not all the assemblies is yet loaded and thus reflection will not return all referenced assemblies.
   
     private ArrayList GetRefferencedAssemblies()
        {
            AppDomain domain = AppDomain.CurrentDomain;

            var assemblies = new ArrayList();

            string[] files = Directory.GetFiles(domain.RelativeSearchPath, "*.dll", SearchOption.TopDirectoryOnly);

            foreach (var file in files)
            {
                AssemblyName assemblyName = AssemblyName.GetAssemblyName(file);

                assemblies.Add(assemblyName);
            }

            return assemblies;
        }   

1 comment:

  1. Anonymous11/19/2014

    this does not load all referenced assemblies, but all "in folder assemblies"
    thanks anyway!

    ReplyDelete