我想给A程序做一个插件功能,能够实现A程序运行是,可以对插件动态卸载和更新。
现在我是用MAF来实现插件加载功能。
但无法实现插件的卸载和更新。
string path = Settings.Default.PipelinePath;
AddInStore.Update(path);
tokens = AddInStore.FindAddIns(typeof(IPluginHost), path);
IPluginHost addin = tokens[0].Activate(AddInSecurityLevel.FullTrust);
//调用插件
addin.Exec();
尝试过创建新的AppDomain,插件的dll还是处于占用状态,无法重新生成。
domain = AppDomain.CreateDomain("token");
IPluginHost addin = tokens[0].Activate(domain);
如果你想热更新,那所有dll都必须动态调用,不能静态引用