c# - 加载插件 DLL 文件, "The invoked member is not supported in a dynamic assembly."

标签 c# .net-4.0 .net-2.0 .net-assembly dynamic-assemblies

我们有自定义 DLL,但未包含在我们的初始安装文件中。它们在运行时加载。此过程在使用 .NET 2.0 时运行良好,但我们现在使用 .NET 4.0 时收到“动态程序集中不支持调用的成员”错误消息。

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

最佳答案

发生此错误是因为无法对动态程序集调用 Assembly.Load。您必须在使用动态程序集之前过滤掉它们。

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

关于c# - 加载插件 DLL 文件, "The invoked member is not supported in a dynamic assembly.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10091221/

相关文章:

c# - 如何从 ListView 中拉取一种类型的项目

c# - 当我的应用程序崩溃时,JIT 调试器总是出现而不是我的崩溃报告

.net - 如何在没有 Visual Studio 的情况下查看远程 .NET 应用程序中哪个线程发疯

.net - ASP.NET WebForm 的 'page lifecycle' 是什么?

c# - 将应用程序从 .NET 2.0 转换为 4.5.1 时出现运行时错误

c# - 在 C# 中使函数非阻塞/异步的简单方法?

c# - File.open 在访问本地文件时挂起并卡住线程

c# - 如何从 C# .NET 4.5 中的 zip 存档中提取特定目录?

c# - 在多线程控制台应用程序中进行Web爬网

c# - 在 C# 中从 SQL Server 检索大量数据的最简单方法