【问题标题】:Usage of IApplicationBuilder extensions methods in class library类库中 IApplicationBuilder 扩展方法的使用
【发布时间】:2020-12-16 07:05:41
【问题描述】:

我正在尝试编写自定义运行状况检查并将其放入 Nuget 以供重复使用。要让应用程序 (.netcore 3.1) 使用此运行状况检查,它需要调用

   appBuilder.UseEndpoints(endpoints =>
                        {
                            endpoints.MapHealthChecks("/health", new HealthCheckOptions
                            {
                                ResultStatusCodes =
                                {
                                    [HealthStatus.Healthy] = StatusCodes.Status200OK,
                                    [HealthStatus.Degraded] = StatusCodes.Status200OK,
                                    [HealthStatus.Unhealthy] = StatusCodes.Status503ServiceUnavailable
                                },
                                AllowCachingResponses = false,
                                ResponseWriter = HealthCheckResponseWriter.WriteResponse
                            });
                        });

除了 ConfigureServices 中的其他调用。 我想将这部分代码移动到我的 nuget 中,但遇到了不明白我需要使用什么 Nuget 才能在我的类库中同时使用 IApplicationBuilder 和 UseEndpoints 扩展方法?事实证明,我可以在使用 .NET.Sdk.Web 的其他应用程序中做到这一点而不会出现任何问题,但在类库中却没有。看起来它所需的所有依赖项都隐式添加到了 web sdk 中,但是我怎样才能弄清楚我应该在类库中添加什么才能使其工作?

【问题讨论】:

    标签: nuget extension-methods asp.net-core-3.1


    【解决方案1】:

    我已经解决了这个问题。

    随着 .NET Core 3.0 的发布,许多 ASP.NET Core 程序集不再作为包发布到 NuGet。相反,这些程序集包含在 Microsoft.AspNetCore.App 共享框架中,该框架与 .NET Core SDK 和运行时安装程序一起安装。有关不再发布的包列表,请参阅删除过时的包引用。

    从 .NET Core 3.0 开始,使用 Microsoft.NET.Sdk.Web MSBuild SDK 的项目会隐式引用共享框架。使用 Microsoft.NET.Sdk 或 Microsoft.NET.Sdk.Razor SDK 的项目必须引用 ASP.NET Core 才能在共享框架中使用 ASP.NET Core API。

    https://docs.microsoft.com/en-us/aspnet/core/fundamentals/target-aspnetcore?view=aspnetcore-3.1&tabs=visual-studio

    【讨论】:

      猜你喜欢
      • 2019-08-24
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      • 2012-11-22
      • 1970-01-01
      相关资源
      最近更新 更多