netcore项目csproj文件编辑
song

引用框架 控制台程序引入aspnetcore包 ,类库项目引入AspNetCore包

1
2
3
4
5
6
7
<Project Sdk="Microsoft.NET.Sdk">
...
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App"></FrameworkReference>
...
</ItemGroup>
</Project>
元包名 功能 组成 依赖
Microsoft.NETCore.App 最基础的 .NET 运行时元包,适用于控制台应用、类库以及其他不需要 Web 或桌面支持的应用。 System.*(如 System.Collections、System.Linq、System.Net.Http、System.IO.*、System.Text.*):提供基础的数据结构、网络通信、IO 操作、文件操作、文本处理、JSON和XML支持等功能。
Microsoft.Win32.*:适用于 Windows 特定的 API。
System.Threading.*:提供并行任务处理和多线程支持。
Microsoft.AspNetCore.App 包含 ASP.NET Core 相关的库,用于构建 Web 应用和 API。 Microsoft.AspNetCore.*:包括 MVC、Web API、SignalR、Kestrel 服务器等 ASP.NET Core 的主要功能库。
Microsoft.EntityFrameworkCore.*:内置 Entity Framework Core,支持数据访问。
Microsoft.Extensions.*:提供依赖注入、配置、日志记录等基础功能。
Microsoft.NETCore.App
Microsoft.WindowsDesktop.App 提供构建 Windows 桌面应用程序的库,支持 WPF 和 Windows Forms。 包括 System.Windows.Forms 和 System.Xaml 等库,专门为 Windows 桌面应用程序设计。 Microsoft.NETCore.App

常见的项目sdk类型

sdk 用途 元包
Microsoft.NET.Sdk 基础 .NET Core 运行时库,适合控制台应用、类库项目和其他不需要 Web 或 GUI 支持的项目。 Microsoft.NETCore.App
Microsoft.NET.Sdk.Web 用于 ASP.NET Core Web 应用程序,适合构建 Web 应用和 API 项目。 Microsoft.AspNetCore.App、Microsoft.NETCore.App
Microsoft.NET.Sdk.Worker 用于后台服务应用程序,如 Windows 服务、消息队列处理等。 Microsoft.NETCore.App、Microsoft.Extensions.*
Microsoft.NET.Sdk.WindowsDesktop 用于构建 Windows 桌面应用程序,支持 WPF 和 Windows Forms。
Microsoft.NET.Sdk.Razor 用于构建 Razor 组件库、Razor 页面或视图,常用于 ASP.NET Core 项目中的前端页面。
Microsoft.NET.Sdk.BlazorWebAssembly 用于构建基于 WebAssembly 的 Blazor 前端应用。
Microsoft.NET.Sdk.WebAssembly 用于构建可以在浏览器或 WebAssembly 环境中运行的库,包含对 WebAssembly 的支持。
Microsoft.NET.Sdk.Test 用于构建测试项目,适合单元测试、集成测试等。

常见的 Microsoft.Extensions 包

包名 用途 常用扩展
Microsoft.Extensions.DependencyInjection 提供依赖注入(Dependency Injection,DI)支持,简化对象管理和服务注入,通过 DI 容器实现对象生命周期的管理。
Microsoft.Extensions.Configuration 用于读取、管理和绑定配置文件,方便实现多环境配置。:支持多种应用程序配置源(如 JSON、XML、环境变量等)。 Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Configuration.EnvironmentVariables
Microsoft.Extensions.Logging 提供标准化日志接口,方便进行信息记录和错误调试。支持多种日志提供程序(如控制台、文件、调试等)。 Microsoft.Extensions.Logging.Console
Microsoft.Extensions.Logging.Debug
Microsoft.Extensions.Hosting 提供应用生命周期管理,适用于构建主机(Host)应用。后台服务、Web 应用,适用于任何需要生命周期管理的应用。
Microsoft.Extensions.Options 通过对象映射获取配置值,便于集中管理配置和类型绑定。
Microsoft.Extensions.Caching 提供缓存机制支持,包括内存缓存和分布式缓存(如 Redis) Microsoft.Extensions.Caching.Memory
Microsoft.Extensions.Caching.Distributed
Microsoft.Extensions.FileProviders 提供文件系统访问的抽象层,支持访问物理文件或嵌入文件资源。常用场景:ASP.NET Core Web 应用中用于静态文件管理、嵌入式资源访问 Microsoft.Extensions.FileProviders.Physical:用于访问本地文件系统
Microsoft.Extensions.FileProviders.Embedded:用于访问嵌入式文件资源
Microsoft.Extensions.Localization 提供本地化和全球化支持,使应用支持多语言、区域设置。
Microsoft.Extensions.Primitives 提供对 ChangeToken 的支持,允许在数据变更时触发操作。支持动态更新配置、缓存等,使应用能够监听数据变化。
Microsoft.Extensions.Http 集中化管理 HttpClient 实例,简化与 API 的通信。
Microsoft.Extensions.Diagnostics.HealthChecks 提供应用的健康检查支持,监测各个子系统和服务的状态。
Microsoft.Extensions.Diagnostics.EventSource 提供基于 EventSource 的诊断功能,可以生成自定义事件日志。
Microsoft.Extensions.Hosting.WindowsServices 将主机应用注册为 Windows 服务
Microsoft.Extensions.Hosting.Systemd 将应用注册为 Linux 系统的 systemd 服务。
由 Hexo 驱动 & 主题 Keep