Skip to content

Console 应用到 ASP.NET Core 应用.md

引用 Microsoft.AspNetCore.App 共享框架

在 .NET Core 3.0 之前,你需要在项目中通过 <PackageReference> 来引用 Microsoft.AspNetCore.App 这样的元包。但自 .NET Core 3.0 起,Microsoft.AspNetCore.App 成为了一个共享框架,它随 .NET SDK 和运行时一同安装,包含了一组经过充分测试且相互兼容的 ASP.NET Core 程序集。

为了在项目中使用这个共享框架,引用方式从之前的 NuGet 包引用:

xml
<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

变更为使用 <FrameworkReference> 元素:

xml
<ItemGroup>
  <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

这个 <FrameworkReference> 不需要指定版本,它的版本由项目的目标框架(例如 net8.0)决定。

使用通用主机配置和运行 Web 应用

c#
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Hosting;

// 创建默认的主机构建器,包含配置、日志等默认设置
Host.CreateDefaultBuilder(args)
    // 配置Web主机默认设置
    .ConfigureWebHostDefaults(webHostBuilder =>
    {
        // 配置应用程序请求处理管道
        webHostBuilder.Configure(appBuilder =>
        {
            // 启用路由中间件,用于将请求路由到相应的处理程序
            appBuilder.UseRouting();
            // 配置端点路由,定义应用程序的端点
            appBuilder.UseEndpoints(endpointRouteBuilder => 
                // 为根路径("/")映射一个GET请求处理程序,返回"Hello, World"
                endpointRouteBuilder.MapGet("/", () => "Hello, World"));

            // 以下是另一种简单的中间件配置方式(当前被注释)
            // 使用Run方法注册一个终止中间件,所有请求都会返回"Hello, World!"
            // appBuilder.Run(httpContext => httpContext.Response.WriteAsync("Hello, World!"));
        });
    })
    // 构建主机实例
    .Build()
    // 运行主机,开始监听请求
    .Run();

Last updated:

Released under the MIT License.