運行fiddler,報錯,如下圖
原因: In .Net 4.5 the ExtensionAttribute class was moved from System.Core to mscorlib.ExtensionAttribute 類在4.5中從System.Core遷移到mscorlib中,項目運行時會按4.5的方法尋找導致異常。
有人會說,項目都是按4.0編譯的,4.5也卸載了,為什么還會出現此問題?原因在於引用的第三方類庫可能還是關聯的4.5版本,比如我遇到這個問題是由於Entityframework引用了4.5版本導致的,而4.0和4.5從dll屬性中看不出來
解釋:System.Runtime.CompilerServices.ExtensionAttribute 在 .net 4.0里 在 System.Core.Dll里, 在 .net 4.5里則被移到了 mscorlib 中。
System.Core.Dll的版本顯示的 4.0.0.0 版,但實際上已經被 .net 4.5替換,里面沒有ExtensionAttribute 類。
未替換的版本在目錄“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0”下,用Reflector可以看到,里面有ExtensionAttribute類。
解決的方法:
解決方法: 在用戶的機器上安裝 .net 4.5。 對OS的要求是:
Windows 7 SP1(x86 和 x64)
Windows Server 2008 R2 SP1 (x64)
Windows Server 2008 SP2(x86 和 x64)