Loading plug-in DLL files, "The invoked member is not supported in a dynamic assembly."

Trevorm picture Trevorm · Apr 10, 2012 · Viewed 25k times · Source

We have custom DLL's that are not included in our initial setup file. They are loaded at runtime. This process worked fine while using .NET 2.0, but we are getting the "The invoked member is not supported in a dynamic assembly" error message now that we are using .NET 4.0.

try
{
    assem = Assembly.LoadFrom(fi.FullName); //fi is FileSystemInfo
}
catch (FileLoadException) {}
catch (BadImageFormatException) {}
catch (System.Security.SecurityException) {}
catch (ArgumentException) {}
catch (PathTooLongException) {}

Answer

Gusdor picture Gusdor · Apr 28, 2017

This error is occurring because Assembly.Load cannot be called upon dynamic assemblies. You must filter out the dynamic assemblies before using them.

var assemblies AppDomain.CurrentDomain.GetAssemblies().Where(p => !p.IsDynamic);