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

附加信息:无法加载 文件或程序集 “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相反的参考。

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


当前回答

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

其他回答

打开IIS管理器

选择应用程序池

然后选择您正在使用的池

进入高级设置(在右侧)

将“启用32位应用程序”的标志为true。

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

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

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

我“设置为启动项目”卸载/未找到库/项目。

然后进行部署。

它工作!

我认为它找不到.dll,因为一开始它不在程序集中。

我执行以下操作来确定无法找到哪个依赖项。

运行regedit.exe并导航到:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

创建以下内容:

LogFailures set value to 1 (DWORD)
LogResourceBinds set value to 1 (DWORD)
LogPath (String) set value to C:\FusionLog\

现在运行程序并等待它抛出无法加载文件或程序集或其依赖项之一。

使用资源管理器,导航到C:\FusionLog,应该有一个文件夹包含你的程序的日志,显示哪个依赖项丢失了。

注意:有些人使用FUSLOGVW.exe,它是这些融合日志的查看器。在我的机器上可以在多个地方找到它,包括:

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\FUSLOGVW.exe

尝试检查引用的“Copy to Local”属性是否设置为true,并且特定版本是否设置为true。这与Visual Studio中的应用程序相关。