【发布时间】:2021-12-12 11:06:26
【问题描述】:
我遇到了另一个“无法加载文件或程序集或其依赖项之一”问题。
附加信息:无法加载 文件或程序集 'Microsoft.Practices.Unity, 版本=1.2.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 或 它的依赖项之一。位于 程序集的清单定义确实 与程序集引用不匹配。 (HRESULT 异常:0x80131040)
我不知道是什么原因造成的,也不知道如何调试它以找到原因。
我已经在我的解决方案目录 .csproj 文件中进行了搜索,并且在我拥有 Unity 的每个地方都进行了搜索:
参考 包括="Microsoft.Practices.Unity, 版本=2.0.414.0,文化=中性, PublicKeyToken=31bf3856ad364e35, 处理器架构=MSIL"
在我的任何项目中都找不到任何违反 1.2.0.0 的参考。
任何想法我应该如何解决这个问题?
【问题讨论】:
-
您引用的任何程序集是否都在使用旧
Unity库中的某些内容? -
可能...但是我怎样才能找到哪些程序集?我的解决方案中有很多项目,还有很多潜在的嫌疑人......试错蛮力似乎有点绝望......
-
不是程序集参考,你参考的是2.0版。但是在运行时,CLR 会找到 1.2,一个旧版本。如果在构建目录中没有看到旧 DLL,则使用 Fuslogvw.exe 找出 CLR 是如何找到这个旧副本的。
-
查看项目的 bin 文件夹,看看项目的 dll 名称是否有冲突。只需删除那个,然后重建您的解决方案。这对我有用。
-
“或其依赖项之一”是真正让我烦恼的部分。如果它无法加载“其依赖项之一”,则错误应说明无法加载哪个“其依赖项之一”。现在的form没用,还不如说can't load thinggy
标签: c# .net reference compiler-errors