我遇到了另一个“无法加载文件或程序集或其依赖项”问题。
附加信息:无法加载文件或程序集“ Microsoft.Practices.Unity,版本= 1.2.0.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)
我不知道是什么原因造成的,或者我如何调试它以找到原因。
我已经在我的解决方案目录.csproj文件中进行了搜索,在拥有Unity的每个地方都有:
参考Include =“ Microsoft.Practices.Unity,版本= 2.0.414.0,文化=中性,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL”
在我的任何项目中,找不到任何与1.2.0.0背离的参考。
有什么想法我应该去解决这个问题吗?
通常,我还将感谢有关如何调试此类问题的提示。
检查您是否引用了程序集,而该程序集又引用了旧版本的unity。例如,假设您有一个名为的程序集ServiceLocator.dll,它需要一个旧版本的Unity程序集,现在,当您引用该程序集时,ServiceLocator应该为它提供旧版本的Unity,这便引起了问题。
ServiceLocator.dll
ServiceLocator
可能是所有项目在其中构建其程序集的输出文件夹,具有统一的旧版本。
您可以使用FusLogVw找出谁在加载旧程序集,只需定义日志路径,然后运行解决方案,然后检查(在FusLogvw中)Unity程序集的加载第一行,双击它并查看调用组装,就可以开始了。