1、錯誤背景
系統安裝了.net framework4.0、4.5,項目先使用VS2013(4.5)開發,后來又重新用VS2010開發(4.0),運行時出現這個錯誤
2、錯誤原因
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屬性中看不出來
3、解決方法
拿entityframework舉例,用nuget下載entityframework,生成的packages\EntityFramework.6.0.2\lib文件夾中會有net40和net45兩個文件夾,引用.net4.0文件夾中的dll即可