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

时间:2014-01-02 13:56:41

标签: c# .net

我已经看到很多与此类似的问题,但它们似乎都存在问题源于版本或目标框架的差异,我目前的问题是基于使用相同版本重建相同的dll并用MEF。 可用的完整示例here(已启用卷影副本)

问题如下:

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

然后你得到这个例外。
有任何想法吗?我试图了解问题的根源

1 个答案:

答案 0 :(得分:2)

您将不得不使用多个AppDomains

您无法加载两个具有相同名称的程序集。所以你必须卸下原件。但是,您无法卸载程序集!

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