我有三个.NET 4.5项目Example.Mvc(Mvc 5),Example.UnitTest,Example.Data。我从NuGet将Dynamic Linq Library v1.1.13加载到我的数据层" Example.Data"项目。 Example.Data使用Entity Framework 6,我想在其中使用Dynamic Linq:
var list = db.ExtendedUserAccounts
.Where(x => x.LastName.Contains("doe"))
.OrderBy("LastName, DateOfBirth asc")
.Skip(numberOfResultsPerPage * (pageNumber - 1))
.Take(numberOfResultsPerPage);
return list.ToList();
Example.UnitTest项目完美地调用该方法。但是,引用相同Example.Data项目的Example.Mvc项目会引发以下异常:
System.Reflection.ReflectionTypeLoadException
"无法加载一个或多个请求的类型。检索 LoaderExceptions属性以获取更多信息。"
LoaderException说:
System.IO.FileNotFoundException
{"无法加载文件或程序集' Castle.DynamicProxy2, Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc'要么 其中一个依赖项。系统找不到该文件 指定。":" Castle.DynamicProxy2,Version = 2.1.0.0,Culture = neutral, 公钥= 407dd0808d44fbdc"}
在尝试使用Dynamic Linq之前,我从未遇到此错误。
更新:
我通过引用Castle.DynamicProxy2,Castle.Core和log4net的旧DLL使错误消失了。我在RubyGems.org上找到了它们。我真的不喜欢这个修复程序,因为程序集已经过时,我将来可能遇到一些兼容性/程序集重定向问题,但我该怎么办?