【问题标题】:.net6 upgrade. MapControllers method fails.net6 升级。 MapControllers 方法失败
【发布时间】:2021-11-30 11:15:41
【问题描述】:

我正在将 API 项目从 .net5 升级到 .net6

以前可以,现在崩溃了

  • 内部异常消息“抛出了‘Unity.Exceptions.InvalidRegistrationException’类型的异常。”
  • 消息“没有可用于类型 Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine 的公共构造函数。”

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});

我做了一些调查 变化自

services.AddControllers();

services.AddControllersWithViews();

帮助。

这是一个纯api项目。没有意见,没有 mvc 等。我有一个解决方案,但我试图了解原因。我为什么要做这个改变?我错过了一些东西,所以我应该换个地方。

【问题讨论】:

    标签: .net .net-6.0


    【解决方案1】:

    这是因为Unity is a dead project and will not be updated going forward,所以与 .NET 6 的任何不兼容问题都不会得到修复。

    我真的不明白你为什么要在 2021 年使用 Unity,因为 .NET 中内置的依赖注入运行良好。

    【讨论】:

    • 似乎一些“刚刚起作用”的遗留东西开始带来痛苦。
    • 这就是遗留软件的问题,它“正常工作”,直到你不再有升级路径......然后它根本不起作用。但这是您或您的公司做出的选择……而且选择会产生后果。
    • 正如您在链接的同一个 github 问题中指出的那样,提到“开箱即用”DI 不支持那里需要的所有内容。见github.com/unitycontainer/unity/discussions/…
    猜你喜欢
    • 2018-12-17
    • 2022-11-11
    • 2015-08-06
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多