C# 无法在.NET 4 MVC 4应用程序中加载版本为2.0.5.0的文件或程序集系统

C# 无法在.NET 4 MVC 4应用程序中加载版本为2.0.5.0的文件或程序集系统,c#,asp.net-mvc,C#,Asp.net Mvc,搜索了很久,找不到任何有用的东西。以下是我得到的一个例外: Could not load file or assembly 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from H

搜索了很久,找不到任何有用的东西。以下是我得到的一个例外:

Could not load file or assembly 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) 

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

Stack Trace: 

[FileLoadException: Could not load file or assembly 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)]
StructureMap.Graph.PluginGraph..ctor() in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\Graph\PluginGraph.cs:41
StructureMap.PluginGraphBuilder..ctor() in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\PluginGraphBuilder.cs:22
StructureMap.InitializationExpression..ctor() in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\InitializationExpression.cs:22
StructureMap.ObjectFactory.Initialize(Action`1 action) in c:\BuildAgent\work\996e173a8ceccdca\src\StructureMap\ObjectFactory.cs:47
...
此应用程序在测试服务器上运行良好,但在生产服务器上引发此异常。如您所见,StructureMap代码是导致异常的原因

由于生产服务器上没有安装4.5,我不得不将此应用程序从4.5转换为.NET 4。转换后,该应用程序在我的本地机器和测试服务器上仍能正常工作

我已经为系统程序集将Copy Local设置为True,但是由于引用的版本是4.0.0.0而不是2.0.5.0,因此我认为这没有什么区别


如果需要更多信息,请告诉我。非常感谢您提供的任何帮助。

编辑web.config文件以删除正常操作不需要的引用:

1-在站点的根目录中打开web.config文件

2-找到以下行并注释掉():xxxxx-是程序集名称

<add assembly="xxxxx", Version=2.0.5.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

确保.NET framework已修补。Microsoft已向.NET发布修补程序,以允许可移植类库正确查找适当的运行时()。如果您看到上述异常(或类似异常),则意味着您缺少最新的.NET framework修补程序。

我只想分享解决我的开发机器上问题的另一个解决方案:安装(撰写本文时只有11.2MB)足以使一切正常运行。

从以下链接安装Microsoft®Silverlight®5 SDK。它解决了问题,对我来说效果很好

我发现正是“等待”和“异步”给我带来了麻烦

我的Windows XP SP3只有.NET 4.0,但必须使用KB2600211将其更新为.NET 4.0.3-当.NET 4.0.3出现时,这不是通过Windows update自动更新的,因为计算机已脱离网格

这是更新的链接:


从只有VS2017和Silverlight 5 SDK的机器配置开始,我在上面安装了VS2015。这是我开始发现System.Core和System.Windows问题的时候


当我卸载VS2015并重新安装Silverlight 5 SDK时,这些问题消失了。

如果有指向错误版本的程序集重定向,您是否检查了web.config文件?是的,没有重定向。实际上,我试图添加一个从2.0.5.0到4.0.0.0的重定向,但似乎没有效果。该行不在web.config中,只有一个程序集:您是否向应用程序添加任何类库项目?如果是,那么也检查一下它的参考资料。我认为这正是问题所在。不幸的是,这是一个生产服务器,我没有安装更新的权限。我最终只是重构了应用程序,不使用StructureMap.Nice。那篇链接的知识库文章解决了我遇到的一个问题,即引用PCL程序集的4.0框架程序集未能加载。非常感谢。这修复了有人意外卸载4.0框架后我们遇到的问题,即使我们的团队重新安装了它,我们仍然会遇到错误。奇怪的是,在重新安装4.0之后,我们运行了Windows Update,它说没有可用的更新。需要手动下载并安装此软件才能修复此问题。我在一些客户电脑上遇到此问题,这些电脑运行的是安装了.net 4.0的Windows 7 SP1(未检查是否已修补)。由于我的click-once部署先决条件需要.net 4.0和KB2468871,因此我假定它们是。在呼叫案例中,我修复了安装.NET4.5的问题。还有什么可能导致这种情况?不确定在SilverLight可能不需要的时候依赖它是一个很好的解决方案。你太棒了,帮我节省了几个小时!!谢谢