我遇到了另一个“无法加载文件或程序集或其依赖项之一”的问题。
Additional information: Could not load file or assembly 'Microsoft.Practices.Unity, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
我不知道是什么原因造成的,也不知道如何调试它才能找到原因。
我在我的解决方案目录 .csproj 文件中进行了搜索,在我有 Unity 的每个地方我都有:
Reference Include="Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
在我的任何项目中都找不到任何违反 1.2.0.0 的引用。
我应该如何解决这个问题?
最佳答案
检查您引用的程序集是否引用了旧版本的 unity。例如,假设您有一个名为
ServiceLocator.dll
的程序集,它需要旧版本的 Unity 程序集,现在当您引用ServiceLocator
时,您应该为它提供旧版本的团结,这就是问题所在。可能是所有项目构建其程序集的输出文件夹,具有旧版本的 unity。
您可以使用 FusLogVw要找出谁在加载旧程序集,只需为日志定义一个路径,然后运行您的解决方案,然后检查(在 FusLogvw 中)加载 Unity 程序集的第一行,双击它并查看调用程序集,然后在此处你去吧。
关于c# - 无法加载文件或程序集或其依赖项之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469929/