繁体   English   中英

无法从程序集“Microsoft.AspNetCore.Mvc.Core”加载类型“Microsoft.AspNetCore.Mvc.Internal.IActionSelectorDecisionTreeProvider”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM