Asp.net mvc 4 WebAPI RC';System.Runtime.CompilerServices.ExtensionAttribute';来自组件';mscorlib,

Asp.net mvc 4 WebAPI RC';System.Runtime.CompilerServices.ExtensionAttribute';来自组件';mscorlib,,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,我有一个运行.net4的webapi应用程序,我正试图在服务器上运行它。api在本地运行良好 无法从程序集“mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089”加载类型“System.Runtime.CompilerServices.ExtensionAttribute”。 我需要做哪些更改才能使其在我的服务器上工作 您确定是针对.NET 4而不是.NET 4.5编译的吗?在.NET4.5中,我们将ExtensionAttribu

我有一个运行.net4的webapi应用程序,我正试图在服务器上运行它。api在本地运行良好

无法从程序集“mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089”加载类型“System.Runtime.CompilerServices.ExtensionAttribute”。
我需要做哪些更改才能使其在我的服务器上工作

您确定是针对.NET 4而不是.NET 4.5编译的吗?在.NET4.5中,我们将ExtensionAttribute迁移到了mscorlib(因此我们可以在mscorlib中放置扩展方法)。如果您针对.NET4.5编译了一些东西,并试图在.NET4上运行它,我希望看到这样的错误


编辑:实际上,如果您使用的是ILMerge,则需要在targetplatform交换机中使用.NET 4.0引用程序集的路径,而不是实现的路径,如本文所述:

还要检查项目所依赖的DLL。我也遇到了同样的问题,发现只有一个DLL导致了这个问题。此DLL在我的本地计算机上是一个旧版本(针对.NET 4.0编译),站点在本地主机上运行正常,但在站点失败的实时服务器上是一个新版本(针对.NET 4.5编译)。

另一个可能的解决方案(其他具有相同异常的解决方案)可能是生成服务器没有.net 4.0引用程序集,在安装.net 4.5之后,您需要从开发设备中复制它们

这些通常是类似于:

C:\Program Files(x86)\Reference Assembly\Microsoft\Framework.NETFramework\v4.0


有关更多详细信息,请参见

在安装.NET Framework 4.5之后,我遇到了同样的问题,并通过为我的站点创建一个新的应用程序池进行了修复

我对.NET几乎没有经验,在
System.Runtime.CompilerServices.ExtensionAttribute
方面也遇到了同样的问题


解决方案:删除项目引用,即对框架4.5的引用,因为在我的情况下,因为我没有安装这个框架。

这在4.5中不是新的吗?如果是,请在服务器上安装4.5。该应用程序仅使用.net4运行。如果我不需要在服务器上安装4.5,我宁愿不安装它。这种类型自.NET3.5()以来就已经存在,所以框架版本可能不是问题所在(除非您实际上没有在服务器上安装.NET4)。你有没有得到一个堆栈跟踪和那个异常?我们有零星的报告,但无法得到一个实时复制。如果您能将项目和编译产生的二进制文件通过电子邮件发送给我们,我们将不胜感激。我的电子邮件地址是levib@microsoft.com.ThanksLevi,我最终在.net上安装了.net4.5框架,它解决了我的问题,或者:在服务器上更新框架后,在管理控制台中安装了aspnet_regais-I。