在运行时加载程序集,不要阻止它(并检测对该程序集的更改)

时间:2017-11-10 10:42:56

标签: c# .net dll

我正在尝试在运行时将DLL加载到我的应用程序中:

Assembly dllAssembly = Assembly.LoadFile(dllFileInfo.FullName);
assemblies.Add(dllAssembly);
foreach (Type type in dllAssembly.GetExportedTypes())
{
    if (typeof(IPlugin).IsAssignableFrom(type))
    {
        IPlugin i = (IPlugin)Activator.CreateInstance(type);
        PluginManager.Add(i);
    }
}

但是,问题是LoadFile会阻止程序集(只要IIS正在运行就无法替换它)。通过引用加载的DLL不会发生这种情况。甚至更整洁,它们可以被替换,IIS会自动使用新的DLL重新启动应用程序。

如何在运行时加载的插件DLL获得相同的行为?

0 个答案:

没有答案