我见过很多类似的问题,但它们似乎都有源于版本或目标框架差异的问题,我目前遇到的问题是基于使用相同的版本重建相同的dll并用MEF替换运行时。此处提供了完整示例(已启用卷影复制)
问题如下:
- 主机应用程序从插件文件夹加载 dll
- 更改有关 dll 的某些内容并重新编译
- 调试到 DLL 中 在
- 即时窗口中尝试调试有关 DLL 中包含的类型的任何内容(即在中间窗口中执行类型(Bar)
然后你会得到这个异常。
有什么想法吗?我试图了解问题的根源
你将不得不使用多个AppDomains
。
不能加载两个同名的程序集。 因此,您将不得不卸载原件。 但是,您无法卸载程序集!
您可以卸载AppDomain
。 因此,您需要的所有内容都加载到新AppDomain
,然后在要卸载程序集时将其卸载。