netcore项目csproj文件编辑
引用框架 控制台程序引入aspnetcore包 ,类库项目引入AspNetCore包
1 | <Project Sdk="Microsoft.NET.Sdk"> |
| 元包名 | 功能 | 组成 | 依赖 |
|---|---|---|---|
| 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 服务。 |