该类型<type>存在于两个 DLL 中。 重新加载 dll



我见过很多类似的问题,但它们似乎都有源于版本或目标框架差异的问题,我目前遇到的问题是基于使用相同的版本重建相同的dll并用MEF替换运行时。此处提供了完整示例(已启用卷影复制)

问题如下:

  • 主机应用程序从插件文件夹加载 dll
  • 更改有关 dll 的某些内容并重新编译
  • 调试到 DLL 中
  • 即时窗口中尝试调试有关 DLL 中包含的类型的任何内容(即在中间窗口中执行类型(Bar)

然后你会得到这个异常。
有什么想法吗?我试图了解问题的根源

你将不得不使用多个AppDomains

不能加载两个同名的程序集。 因此,您将不得不卸载原件。 但是,您无法卸载程序集!

您可以卸载AppDomain 。 因此,您需要的所有内容都加载到新AppDomain,然后在要卸载程序集时将其卸载。

最新更新