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

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

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


当前回答

Goto:解决方案->包 点击高级选项卡(在页面下方找到) 将您的dll添加到其他程序集(这样我们就可以在sharepoint中添加外部dll)。

其他回答

我的解决方案是:

我有一个三层应用程序,我忘记将DLL复制到IIS的正确路径。只要复制到正确的位置,它就为我工作了。

检查你是否引用了一个程序集,而这个程序集又引用了一个旧版本的unity。例如,假设你有一个名为ServiceLocator.dll的程序集,它需要一个旧版本的Unity程序集,现在当你引用ServiceLocator时,你应该为它提供旧版本的Unity,这就产生了问题。 可能是所有项目构建其程序集的输出文件夹,有一个旧版本的unity。

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

清理解决方案,然后右键单击项目并选择Package

在这里增加程序集和程序集文件版本并重新构建。

如果这行不通,

1 -在文件资源管理器中打开解决方案。

2 -关闭Visual Studio。

3 -删除所有bin和obj文件夹。

4 -重新打开项目并构建它。

下面的方法对我很有效。

删除临时文件C:\Windows\Microsoft.NET\Framework\v4.0.30319\临时ASP. net网络文件 然后右键单击临时Asp.net文件>属性>安全 并给予IIS和所有运行我的项目的用户完全控制访问权限

我的。net 4.0的解决方案,使用企业库5,是添加一个引用:

Microsoft.Practices.Unity.Interception.dll