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

附加信息:无法加载 文件或程序集 “Microsoft.Practices.Unity, Version = 1.2.0.0、文化=中立, 都31 bf3856ad364e35”或 它的依赖项之一。在位于 程序集的显式定义可以 不匹配程序集引用。 (异常来自HRESULT: 0x80131040)

我不知道是什么导致了这种情况,也不知道如何调试它来找到原因。

我在我的解决方案目录.csproj文件中做了一个搜索,我有Unity的每个地方:

参考 包括= " Microsoft.Practices.Unity, Version = 2.0.414.0、文化=中立, 都31 bf3856ad364e35, processorArchitecture = MSIL”

在我的任何项目中都找不到任何与1.2.0.0相反的参考。

我该怎么解决这个问题呢?


当前回答

在我的案例中,这些提议的答案都不起作用。

以下是对我有效的方法:

删除引用 重命名DLL 再次导入引用

第二步显然很重要,因为没有它就不能工作。

其他回答

好吧,这听起来可能很愚蠢,但在尝试了所有其他解决方案并花了一个晚上在这个愚蠢的事情上之后,我是如何解决这个问题的。

我得到了相同的错误,一些DLL从Bin文件夹丢失。 我试着删除,从teamfoundationserver上恢复所有东西,但没有用。 从我办公室的本地电脑上拿了一份Bin文件夹,把它换掉了。它也没起作用。 最后,我手动ftp服务器,得到了显示为丢失的DLL副本,然后它开始显示文件列表序列中的下一个文件丢失。

所以我ftped服务器得到所有的Bin文件夹,手动替换每个文件一个接一个。(不是Ctrl + All和替换..我试过了,但没有用。) 不知怎的,它起作用了……

在99%时,无法加载文件或程序集或其依赖项之一的问题是由依赖项引起的!我建议你遵循以下步骤:

从http://www.dependencywalker.com/下载Dependency Walker 启动Dependency Walker并打开dll(在我的例子中是NativeInterfaces.dll) 您可以看到一个或多个dll的错误在红色错误打开文件…

这意味着这个dll在你的系统中丢失了;在我的情况下,dll名称是MSVCR71.DLL 您可以从谷歌下载丢失的dll,并复制到正确的路径(在我的情况下c:\windows\system32) 此时,您必须在GAC(全局程序集缓存)中注册新的dll:打开DOS终端并写入: cd \ Windows \ System32系统 Regsvr32 /i msvcr71.dll 重新启动应用程序

注意相互矛盾的参考资料。即使在清理和重新构建之后,冲突的引用仍然会导致问题。我的问题是在AForge和Accord之间。我删除了这两个引用,并重新添加了引用,重新选择了特定的引用(针对我的情况,只是Accord)。

我有一个c# Winforms项目,名为SetTags,其中有大量的表单,我使用Visual Studio 2013来处理。在编辑其中一个并尝试构建后,我得到了错误:

Could not load file or assembly 'SetTags Version = 2.1.85.0, Culture=neutral,PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

当我试图保存项目或关闭一直在处理的表单时,也出现了错误。

我通过删除最近添加的单选按钮控件并注释掉对它的所有引用来解决这个问题,然后再次添加该控件并取消注释代码。这让我可以保存表单,在关闭重新启动VS时,问题已经消失了。

我的Visual Studio环境偶尔有很多问题——工具箱不显示或只在VS启动时出现,在设计模式下查看表单时无法识别自定义控件——这可能是我需要转移到后面的VS版本。

对我来说,在没有unity c# Projects Checkmark的情况下重建unity游戏是可行的。