![](/img/trans.png)
[英]System.IO.FileLoadException: Could not load file or assembly 'Microsoft.AspNetCore.Mvc.Core, Version=2.1.3.0'
[英]Could not load type 'Microsoft.AspNetCore.Mvc.Internal.IActionSelectorDecisionTreeProvider' from assembly 'Microsoft.AspNetCore.Mvc.Core
我正在开发 OData ASP Net Core API。 这是我遇到麻烦的代码部分:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//Adding Model class to OData
var builder = new ODataConventionModelBuilder();
builder.EntitySet<CustomEntity>(nameof(CustomEntity));
//Enabling OData routing.
app.UseMvc(routebuilder =>
{
routebuilder.MapODataRoute("odata", builder.GetEdmModel());
});
//app.UseMvc();
}
在app.UseMvC
行中,我收到此错误:
TypeLoadException:无法从程序集“Microsoft.AspNetCore.Mvc.Core,版本=2.0.2.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”加载类型“Microsoft.AspNetCore.Mvc.Internal.IActionSelectorDecisionTreeProvider”。
有解决方案吗? 我读到这种类型不再是 Microsoft.AspNetCore.Mvc 2.0.2。 有没有办法引入类型,以便 VS 2017 可以从其他文件而不是程序集中获取它? 这个问题是相关的: Could not load type 'Microsoft.AspNetCore.Mvc.Internal.IActionSelectorDecisionTreeProvider'
我知道这是一个老问题,但我刚刚遇到了类似的问题。 我能够通过删除对Microsoft.AspNetCore.Mvc.Core
的项目引用来修复它。
我遇到问题的特定模块是Microsoft.AspNetCore.Mvc.Internal.IPropertyInfoParameterDescriptor
,但它是相同类型的错误:“无法从程序集“Microsoft.AspNetCore”加载类型“Microsoft.AspNetCore.Mvc.Internal.XXXXXX”。 Mvc.Core ....”。
我发现有人与Microsoft.AspNetCore.Mvc.Internal.ActionConstraintCache
有相同的错误类型,对我有用的解决方案是删除该引用。 正如解决方案所说,引用不是必需的,结果证明它是一个不兼容的版本。
jkotas 在 2019 年 9 月 25 日发表评论:
尝试从您的应用 .csproj 中删除 <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />。 ASP.NET 项目在 .NET Core 3.0 中默认获取此引用。 在 .csproj 中明确引用 2.2.5 会将此包降级到与 3.0 不兼容的 2.2 版本。
https://github.com/dotnet/runtime/issues/13478
我希望这会在未来对其他人有所帮助,因为现在帮助 OP 可能为时已晚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.