警告 ASP5001 'MvcCoreMvcBuilderExtensions.SetCompatibilityVersion(IMvcBuilder, CompatibilityVersion)' 已过时

mid*_*owu 6 nuget-package asp.net-web-api

在我的 ASP.NET Core-6 Web API 中,我安装了这个 NuGet 包:

<PackageReference Include="microsoft.aspnetcore.mvc.versioning.apiexplorer" Version="5.0.0" />

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using System.Diagnostics.CodeAnalysis;
using System.Text.Json;

namespace WebApi.API.V1
{
    [ExcludeFromCodeCoverage]
    internal static class ApiStartup
    {
        public static void AddMyApi(this IServiceCollection services)
        {
            services.AddHealthChecks();
            services.AddControllers()
                .AddControllersAsServices()
                .SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
                .AddJsonOptions(c =>
                    c.JsonSerializerOptions.PropertyNamingPolicy
                        = JsonNamingPolicy.CamelCase);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

警告 ASP5001“CompatibilityVersion”已过时:“此 API 已过时,将在未来版本中删除。考虑删除用法。

警告 CS0618“CompatibilityVersion.Version_3_0”已过时:“此 CompatibilityVersion 值已过时。”

警告 ASP5001 'MvcCoreMvcBuilderExtensions.SetCompatibilityVersion(IMvcBuilder, CompatibilityVersion)' 已过时:'此 API 已过时,将在未来版本中删除。考虑删除用法。

怎么解决呢?

谢谢

小智 4

使用适当的兼容性开关:允许您使用最新版本并选择退出特定的破坏行为更改。

在 ASP.NET Core 3.0 中,兼容性开关支持的旧行为已被删除。

我认为,您升级到.Net 6,因此您可以删除此 SetCompatibilityVersion,没有必要这样做。