c# - 无法加载文件或程序集或其依赖项之一

标签 c# .net reference compiler-errors

我遇到了另一个“无法加载文件或程序集或其依赖项之一”的问题。

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 的引用。

我应该如何解决这个问题?

最佳答案

  1. 检查您引用的程序集是否引用了旧版本的 unity。例如,假设您有一个名为 ServiceLocator.dll 的程序集,它需要旧版本的 Unity 程序集,现在当您引用 ServiceLocator 时,您应该为它提供旧版本的团结,这就是问题所在。

  2. 可能是所有项目构建其程序集的输出文件夹,具有旧版本的 unity。

您可以使用 FusLogVw要找出谁在加载旧程序集,只需为日志定义一个路径,然后运行您的解决方案,然后检查(在 FusLogvw 中)加载 Unity 程序集的第一行,双击它并查看调用程序集,然后在此处你去吧。

关于c# - 无法加载文件或程序集或其依赖项之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469929/

相关文章:

c++ - 延长临时工的生命周期

c++ - C++ 中的引用更新

c# - ASP.NET MVC 路由 - 博客自定义路由

c# - 是否可以直接 Linq 到字典?

c# - 当 .NET 反射器显示它已在 .NET Framework 中完成时,为什么我不能将属性或索引器作为 ref 参数传递?

c# - 在 C# 中的一行中累加和

c# - 无法从程序集“mscorlib”加载类型 'System.Reflection.IntrospectionExtensions'

c# - C#中超出基本类型的数字

c - 使用c使用指针交换两个整数

.net - Server.MapPath()