在我的一个与系统诊断相关的应用程序中,相关的DLL将在C#中动态加载和卸载.经过一些搜索后,我发现一个单独的DLL无法动态加载其完整的AppDomain.所以我必须创建一个AppDomain并使用该DLL动态卸载.但我找不到任何地方我如何在代码中使用它.我无法显示应用程序代码,因为它违反了公司规则.
有人可以告诉我一些应用程序代码来使用它.我想使用appdomain动态加载和卸载dll并在该dll中调用特定方法,dll没有任何入口点.
谢谢你的回答.Ashutosh说
问题陈述:实现一个插件系统,允许覆盖关联的程序集(避免文件锁定).在.Net中,可能无法卸载特定程序集,只能卸载整个AppDomain.
我发布这个是因为当我试图解决问题时,每个解决方案都参考了使用多个AppDomain.即使在项目开始时进行架构,多个AppDomain也很难正确实现.
此外,AppDomains对我不起作用,因为我需要跨域传输Type作为Speech Server worfklow的InvokeWorkflow活动的设置.不幸的是,跨域发送类型会导致程序集注入本地AppDomain.
此外,这与IIS相关.IIS具有卷影复制设置,允许执行程序集在加载到内存时被覆盖.问题是(至少在XP下,没有在生产2003服务器上测试)当您以编程方式加载程序集时,卷影副本不起作用(因为您正在加载DLL,而不是IIS).