首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.NET 架构组件

.NET 应用程序是为 .NET 的一个或多个实现开发并在其中运行的。.NET 的实现包括 .NET Framework、.NET 5(和 .NET Core)和 Mono。.NET 的多个实现有一个通用的 API 规范,称为 .NET Standard。本文简要介绍了这些概念中的每一个。 .NET 标准 .NET Standard 是一组由 .NET 实现的基类库实现的 API。更正式地说,它是 .NET API 的规范,它构成了您编译代码所依据的统一契约集。这些契约在多个 .NET 实现中实现。 .NET Standard 是一个目标框架。如果您的代码以 .NET Standard 版本为目标,则它可以在支持该 .NET Standard 版本的任何 .NET 实现上运行。 .NET Standard 的创建是为了在不同的 .NET 实现之间实现可移植性,但现在 .NET 5 提供了一种更好的方式来跨多个平台和工作负载共享代码。有关详细信息,请参阅.NET 5 和 .NET Standard。 .NET 实现 .NET 的每个实现都包括以下组件: 一个或多个运行时。示例:.NET Framework CLR、.NET 5 CLR。 一个类库。示例:.NET Framework 基类库、.NET 5 基类库。 可选地,一个或多个应用程序框架。示例:ASP.NET、Windows Forms和Windows Presentation Foundation (WPF)包含在 .NET Framework 和 .NET 5 中。 可选的,开发工具。一些开发工具在多个实现之间共享。 Microsoft 支持四种 .NET 实现: .NET 5(和 .NET Core)及更高版本 .NET 框架 单核细胞增多症 UWP .NET 5 现在是主要实现,也是持续开发的重点。.NET 5 基于单一代码库构建,该代码库支持多个平台和许多工作负载,例如 Windows 桌面应用程序和跨平台控制台应用程序、云服务和网站。 .NET 5 .NET 5 是 .NET 的跨平台实现,旨在大规模处理服务器和云工作负载。它还支持其他工作负载,包括桌面应用程序。它在 Windows、macOS 和 Linux 上运行。它实现了 .NET Standard,因此面向 .NET Standard 的代码可以在 .NET 5 上运行。ASP.NET Core、Windows Forms和Windows Presentation Foundation (WPF)都可以在 .NET 5 上运行。 有关更多信息,请参阅以下资源: .NET介绍 在 .NET 5 和 .NET Framework 之间为服务器应用选择 .NET 5 和 .NET 标准 .NET 框架 .NET Framework 是自 2002 年以来一直存在的原始 .NET 实现。4.5 版及更高版本实现了 .NET Standard,因此面向 .NET Standard 的代码可以在这些版本的 .NET Framework 上运行。它包含其他特定于 Windows 的 API,例如用于使用 Windows 窗体和 WPF 进行 Windows 桌面开发的 API。.NET Framework 已针对构建 Windows 桌面应用程序进行了优化。 有关详细信息,请参阅.NET Framework 指南。 单核细胞增多症 Mono 是一种 .NET 实现,主要用于需要小型运行时。它是为 Android、macOS、iOS、tvOS 和 watchOS 上的 Xamarin 应用程序提供支持的运行时,并且主要专注于小空间。Mono 还支持使用 Unity 引擎构建的游戏。 它支持所有当前发布的 .NET Standard 版本。 从历史上看,Mono 实现了 .NET Framework 的更大 API,并在 Unix 上模拟了一些最流行的功能。它有时用于在 Unix 上运行依赖于这些功能的 .NET 应用程序。 Mono 通常与即时编译器一起使用,但它也具有在 iOS 等平台上使用的完整静态编译器(提前编译)。 有关更多信息,请参阅Mono 文档。 通用 Windows 平台 (UWP) UWP 是 .NET 的一种实现,用于为物联网 (IoT) 构建现代的、支持触控的 Windows 应用程序和软件。它旨在统一您可能想要定位的不同类型的设备,包括 PC、平板电脑、手机,甚至 Xbox。UWP 提供了许多服务,例如集中式应用程序商店、执行环境 (AppContainer) 和一组 Windows API,以代替 Win32 (WinRT) 使用。应用程序可以用 C++、C#、Visual Basic 和 JavaScript 编写。 有关详细信息,请参阅通用 Win

01
您找到你想要的搜索结果了吗?
是的
没有找到

.NET 中的工具和诊断

在本文中,您将了解 .NET 开发人员可用的各种工具。使用 .NET,您将拥有一个强大的软件开发工具包 (SDK),其中包括一个命令行界面 (CLI)。.NET CLI 支持 .NET 就绪集成开发环境 (IDE) 中的许多功能。本文还提供了生产力功能的资源,例如用于诊断性能问题、内存泄漏、高 CPU、死锁和代码分析工具支持的 .NET CLI 工具。 .NET SDK .NET SDK 包括 .NET 运行时和 .NET CLI。您可以下载适用于 Windows、Linux、macOS 或 Docker的.NET SDK。有关详细信息,请参阅.NET SDK 概述。 .NET 命令行界面 .NET CLI 是一个跨平台的工具链,用于开发、构建、运行和发布 .NET 应用程序。.NET CLI 包含在 .NET SDK 中。有关详细信息,请参阅.NET CLI 概述。 集成开发环境 您可以在Visual Studio Code、Visual Studio或Visual Studio for Mac 中编写 .NET 应用程序。 附加工具 除了比较常用的工具,.NET 还提供了针对特定场景的工具。一些用例包括卸载 .NET SDK 或 .NET 运行时、检索 Windows Communication Foundation (WCF) 元数据、生成代理源代码和序列化 XML。有关详细信息,请参阅.NET 附加工具概述。 诊断和仪表 作为 .NET 开发人员,您可以使用常见的性能诊断工具来监控应用性能、使用跟踪分析应用、收集性能指标以及分析转储文件。您使用事件计数器收集性能指标,并使用分析工具深入了解应用程序的性能。有关详细信息,请参阅.NET 诊断工具。 代码分析 .NET 编译器平台 (Roslyn) 分析器检查您的 C# 或 Visual Basic 代码是否存在代码质量和代码样式问题。有关详细信息,请参阅.NET 源代码分析概述。 包装验证 .NET SDK 允许库开发人员验证他们的包是否一致且格式良好。有关详细信息,请参阅.NET SDK 包验证。

00

.NET Glossary

本词汇表的主要目标是阐明 .NET 文档中经常出现的选定术语和首字母缩略词的含义。 奥特 提前编译器。 与JIT类似,此编译器还将IL转换为机器代码。与 JIT 编译相反,AOT 编译发生在应用程序执行之前,并且通常在不同的机器上执行。因为 AOT 工具链不在运行时编译,所以它们不必最小化编译时间。这意味着他们可以花更多时间进行优化。由于 AOT 的上下文是整个应用程序,因此 AOT 编译器还进行跨模块链接和全程序分析,这意味着遵循所有引用并生成单个可执行文件。 请参阅CoreRT和.NET Native。 应用模型 一个工作量特异性API。这里有些例子: ASP.NET ASP.NET Web API 实体框架 (EF) Windows 演示基础 (WPF) Windows 通信基础 (WCF) Windows 工作流基础 (WF) Windows 窗体 (WinForms) ASP.NET .NET Framework 附带的原始 ASP.NET 实现,也称为 ASP.NET 4.x。 有时 ASP.NET 是一个总称,既指原始 ASP.NET 又指 ASP.NET Core。该术语在任何给定实例中的含义由上下文决定。当您想明确表示您没有使用 ASP.NET 来表示这两种实现时,请参阅 ASP.NET 4.x。 请参阅ASP.NET 文档。 ASP.NET 核心 ASP.NET 的跨平台、高性能、开源实现。 请参阅ASP.NET Core 文档。 部件 一个.dll或.exe文件,其中可以包含可由应用程序或其他程序集调用的 API 集合。 程序集可能包括接口、类、结构、枚举和委托等类型。项目的bin文件夹中的程序集有时称为二进制文件。另见库。 BCL 基类库。 一组包含 System.*(以及在有限范围内的 Microsoft.*)命名空间的库。BCL 是一种通用的低级框架,高级应用程序框架(例如 ASP.NET Core)在其上构建。 .NET 5(和 .NET Core)及更高版本的 BCL 源代码包含在.NET 运行时存储库中。大多数 BCL API 在 .NET Framework 中也可用,因此您可以将此源代码视为 .NET Framework BCL 源代码的分支。 以下术语通常指的是 BCL 所指的同一 API 集合: 核心 .NET 库 框架库 运行时库 共享框架 CLR 公共语言运行时。 确切的含义取决于上下文。公共语言运行时通常是指.NET Framework的运行时或.NET 5(和 .NET Core)及更高版本的运行时。 CLR 处理内存分配和管理。CLR 也是一个虚拟机,它不仅可以执行应用程序,还可以使用JIT编译器即时生成和编译代码。 .NET Framework 的 CLR 实现仅适用于 Windows。 .NET 5 和更高版本的 CLR 实现(也称为 Core CLR)是从与 .NET Framework CLR 相同的代码库构建的。最初,Core CLR 是 Silverlight 的运行时,旨在运行在多个平台上,特别是 Windows 和 OS X。它仍然是一个跨平台的运行时,现在包括对许多 Linux 发行版的支持。 另请参见运行时。 核心CLR .NET 5(和 .NET Core)及更高版本的公共语言运行时。 请参阅CLR。 核心RT 与CLR 相比,CoreRT 不是虚拟机,这意味着它不包括即时生成和运行代码的设施,因为它不包括JIT。但是,它确实包括GC以及运行时类型识别 (RTTI) 和反射的能力。然而,它的类型系统被设计成不需要用于反射的元数据。不需要元数据可以让AOT工具链链接掉多余的元数据和(更重要的是)识别应用程序不使用的代码。CoreRT 正在开发中。 请参阅CoreRT和.NET 运行时实验室介绍。 跨平台 能够开发和执行可在多种不同操作系统(例如 Linux、Windows 和 iOS)上使用的应用程序,而无需专门为每个操作系统重写。这实现了不同平台上的应用程序之间的代码重用和一致性。 见平台。 生态系统 用于为给定技术构建和运行应用程序的所有运行时软件、开发工具和社区资源。 术语“.NET 生态系统”与“.NET 堆栈”等类似术语的不同之处在于它包含第三方应用程序和库。这是一个句子中的示例: “ .NET Standard背后的动机是在 .NET 生态系统中建立更大的统一性。” 框架 一般而言,一个全面的 API 集合,可促进基于特定技术的应用程序的开发和部署。从一般意义上讲,ASP.NET Core 和 Windows 窗体是应用程序框架的示例。框架和库这两个词经常作为同义词使用。 “框架”一词在以下术语中具有不同的含义: 框架库 .NET 框架 共享框架 目标框架 TFM(目标框架名

01

.NET 简介

.NET 是一个免费的开源开发平台,用于构建多种应用,例如: Web 应用程序、Web API 和微服务 云中的无服务器功能 云原生应用 移动应用 桌面应用程序 视窗 WPF Windows 窗体 通用 Windows 平台 (UWP) 游戏 物联网 (IoT) 机器学习 控制台应用程序 视窗服务 使用类库在不同的应用程序和应用程序类型之间共享功能。 使用 .NET,无论您正在构建哪种类型的应用程序,您的代码和项目文件的外观和感觉都相同。您可以使用每个应用程序访问相同的运行时、API 和语言功能。 跨平台 您可以为许多操作系统创建 .NET 应用程序,包括: 视窗 苹果系统 Linux 安卓 IOS 操作系统 手表操作系统 支持的处理器架构包括: x64 x86 ARM32 ARM64 .NET 允许您使用特定于平台的功能,例如操作系统 API。示例是 Windows 上的 Windows 窗体和 WPF,以及从 Xamarin 到每个移动平台的本机绑定。 有关更多信息,请参阅支持的操作系统生命周期策略和.NET RID 目录。 开源 .NET 是开源的,使用MIT 和 Apache 2 许可证。.NET 是.NET 基金会的一个项目。 有关更多信息,请参阅GitHub.com 上的项目存储库列表。 支持 Microsoft 在 Windows、macOS 和 Linux 上支持 .NET。它会在每个月的第二个星期二定期更新以确保安全性和质量。 Microsoft 的 .NET 二进制发行版在 Azure 中由 Microsoft 维护的服务器上构建和测试,并遵循 Microsoft 工程和安全实践。 Red Hat在 Red Hat Enterprise Linux (RHEL) 上支持 .NET。Red Hat 和 Microsoft 合作确保 .NET Core 在 RHEL 上运行良好。 Tizen 支持Tizen 平台上的.NET。 有关详细信息,请参阅.NET Core 和 .NET 5 的版本和支持。 工具和生产力 .NET 为您提供了多种语言、集成开发环境 (IDE) 和其他工具的选择。 编程语言 .NET 支持三种编程语言: C# C#(发音为“See Sharp”)是一种现代的、面向对象的、类型安全的编程语言。C# 起源于 C 语言家族,C、C++、Java 和 JavaScript 程序员很快就会熟悉 C#。 F# F# 语言支持函数式、面向对象和命令式编程模型。 视觉基础 在 .NET 语言中,Visual Basic 的语法是最接近普通人类语言的,这使得它更容易学习。与微软正在积极开发新功能的 C# 和 F# 不同,Visual Basic 语言是稳定的。Web 应用不支持 Visual Basic,但 Web API 支持它。 以下是 .NET 语言支持的一些功能: 类型安全 类型推断 - C#、F#、Visual Basic 通用类型 代表 拉姆达 活动 例外 属性 异步代码 并行编程 代码分析器 集成开发环境 .NET 的集成开发环境包括: 视觉工作室 仅在 Windows 上运行。具有广泛的内置功能,旨在与 .NET 一起使用。社区版对学生、开源贡献者和个人免费。 视觉工作室代码 在 Windows、macOS 和 Linux 上运行。免费和开源。扩展可用于使用 .NET 语言。 适用于 Mac 的 Visual Studio 仅在 macOS 上运行。用于为 iOS、Android 和 Web 开发 .NET 应用程序和游戏。 GitHub 代码空间 在线 Visual Studio Code 环境,目前处于测试阶段。 SDK 和运行时 在.NET SDK是一套库和工具的开发和运行.NET应用程序的。 当你下载.NET,您可以选择SDK或运行时,如.NET运行时或ASP.NET核心运行时。在要准备运行 .NET 应用程序的计算机上安装运行时。在要用于开发的机器上安装 SDK。当您下载 SDK 时,您会自动获得运行时。 SDK 下载包括以下组件: 在.NET CLI。可用于本地开发和持续集成脚本的命令行工具。 该dotnet 驱动程序。运行依赖于框架的应用程序的 CLI 命令。 在罗斯林和F#编程语言编译器。 该MSBuild的生成引擎。 在.NET运行库。提供类型系统、程序集加载、垃圾收集器、本地互操作和其他基本服务。 运行时库。提供原始数据类型和基本实用程序。 ASP.NET Core 运行时。为连接互联网的应用程序提供基本服务,例如 Web 应用程序、IoT 应用程序和移动后端。 桌面运行时。为 Windows 桌面应用程序提供基本服务,包括 Windows 窗体和 WPF。 运行时下载包括以下组件: (可选)

02

.NET Core 和 .NET 5 的发布和支持

Microsoft 发布了 .NET 5(和 .NET Core)及更高版本的主要版本、次要版本和服务更新(补丁)。本文解释了发布类型、服务更新、SDK 功能带、支持期限和支持选项。 发布类型 有关每个版本类型的信息以Major.minor.patch形式编码在版本号中。 例如: .NET Core 3.0 和 NET 5.0 是主要版本。 .NET Core 3.1 是 .NET Core 3.0 主要版本之后的第一个次要版本。 .NET Core 3.1.7 是 .NET Core 3.1 的第七个补丁。 主要版本 主要版本包括新功能、新的公共 API 表面区域和错误修复。示例包括 .NET Core 3.0 和 .NET 5。由于更改的性质,这些版本预计会有重大更改。主要版本与以前的主要版本并排安装。 次要版本 次要版本还包括新功能、公共 API 表面区域和错误修复,也可能有重大更改。示例包括 .NET Core 2.1 和 .NET Core 3.1。这些版本与主要版本之间的区别在于更改的幅度较小。从 .NET Core 3.0 升级到 3.1 的应用程序有一个较小的跳跃向前推进。次要版本与以前的次要版本并排安装。 服务更新 服务更新(补丁)几乎每个月都会发布,这些更新包含安全和非安全错误修复。例如,.NET Core 3.1.8 是 .NET Core 3.1 的第八次更新。当这些更新包含安全修复程序时,它们会在“星期二补丁”发布,也就是每月的第二个星期二。预计服务更新将保持兼容性。从 .NET Core 3.1 开始,服务更新是删除先前更新的升级。例如,3.1 的最新服务更新会在成功安装后删除之前的 3.1 更新。 功能带(仅限 SDK) .NET SDK 的版本控制与 .NET 运行时略有不同。为了与新的 Visual Studio 版本保持一致,.NET SDK 更新有时会包含新功能或新版本的组件,例如 MSBuild 和 NuGet。这些新功能或组件可能与相同主要或次要版本的先前 SDK 更新中提供的版本不兼容。 为了区分此类更新,.NET SDK 使用了功能带的概念。例如,第一个 .NET Core 3.1 SDK 是 3.1.100。此版本对应于 3.1.1xx 功能带。功能带在版本号第三部分的数百个组中定义。例如,3.1.101 和 3.1.201 是两个不同特征带中的版本,而 3.1.101 和 3.1.199 是同一特征带中的版本。安装 .NET Core SDK 3.1.101 后,如果 .NET Core SDK 3.1.100 存在,则会从计算机中删除。当 .NET Core SDK 3.1.200 安装在同一台机器上时,不会删除 .NET Core SDK 3.1.101。 运行时前滚和兼容性 主要和次要更新与以前的版本并行安装。即使安装了较新的版本,为特定的major.minor版本而构建的应用程序仍会继续使用该目标运行时。除非您选择启用此行为,否则应用程序不会自动前滚以使用较新的Major.minor版本的运行时。为面向 .NET Core 3.0 构建的应用程序不会自动开始在 .NET Core 3.1 上运行。我们建议在部署到生产环境之前重建应用程序并针对更新的主要或次要运行时版本进行测试。有关更多信息,请参阅框架相关应用前滚和自包含部署运行时前滚。 服务更新与主要和次要版本的处理方式不同。默认情况下,为 .NET Core 3.1 构建的应用程序在 3.1.0 运行时上运行。安装该服务更新后,它会自动前滚以使用较新的 3.1.1 运行时。此行为是默认行为,因为我们希望在安装后立即使用安全修复程序,而无需任何其他操作。您可以选择退出此默认前滚行为。 .NET Core 和 .NET 5 版本生命周期 .NET Core、.NET 5 和更高版本采用现代生命周期,而不是已用于 .NET Framework 版本的固定生命周期。具有固定生命周期的产品提供较长的固定期限支持,例如 5 年的主流支持和 5 年的扩展支持。主流支持包括安全和非安全修复,而扩展支持仅提供安全修复。采用现代生命周期的产品具有更类似于服务的支持模型,支持周期更短,发布频率更高。 发布曲目 发布有两个支持轨道: 当前版本 这些版本在下一个主要或次要版本发布后的六个月内得到支持。以前(.NET Core 3.0 及更早版本),这些版本仅在下一个主要或次要版本发布后的三个月内受支持。 例子: .NET Core 3.0 于 2019 年 9 月发布,紧随其后的是 2019 年 12 月的 .NET Core 3.1。 .NET Core 3.0 支持于 2020 年 3 月结束,即 3.1 发布 3 个月后。 长期支持(LTS) 版本 这些版本的支持期限至少为 3 年,或者下一个 LT

01

.NET 环境变量

在本文中,您将了解 .NET SDK、.NET CLI 和 .NET 运行时使用的环境变量。某些环境变量由 .NET 运行时使用,而其他环境变量仅由 .NET SDK 和 .NET CLI 使用。一些环境变量被所有人使用。 .NET 运行时环境变量 DOTNET_SYSTEM_NET_HTTP_* 有几个全局 HTTP 环境变量设置: DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 指示是否为全局 HTTP 设置启用诊断处理程序的活动传播。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 设置为falseor 时0,禁用 HTTP/2 支持,默认情况下启用。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 设置为true或 时1,启用 HTTP/3 支持,默认情况下禁用。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 当设置为falseor 时0,覆盖默认值并禁用 HTTP/2 动态窗口缩放算法。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE 默认为 16 MB。覆盖时,HTTP/2 流接收窗口的最大大小不能小于 65,535。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER 默认为 1.0。当被覆盖时,更高的值会导致更短的窗口但下载速度更慢。不能小于0。 DOTNET_SYSTEM_GLOBALIZATION_* DOTNET_SYSTEM_GLOBALIZATION_INVARIANT:请参阅设置不变模式。 DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY: 指定是否只加载预定义的文化。 DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU:指示是否使用应用程序本地Unicode 国际组件(ICU)。有关更多信息,请参阅App-local ICU。 设置不变模式 应用程序可以通过以下任何一种方式启用不变模式: 在项目文件中: XML 复制 <PropertyGroup> <InvariantGlobalization>true</InvariantGlobalization> </PropertyGroup> 在runtimeconfig.json文件中: JSON 复制 { "runtimeOptions": { "configProperties": { "System.Globalization.Invariant": true } } } 通过将环境变量值设置DOTNET_SYSTEM_GLOBALIZATION_INVARIANT为true或1。 重要的 在项目文件或runtimeconfig.json 中设置的值比环境变量具有更高的优先级。 有关详细信息,请参阅.NET 全球化不变模式。 DOTNET_SYSTEM_GLOBALIZATION_USENLS 这仅适用于 Windows。要使全球化使用国家语言支持 (NLS),请将其设置DOTNET_SYSTEM_GLOBALIZATION_USENLS为true或1。DOTNET_SYSTEM_GLOBALIZATION_USENLS要不使用它,请设置为false或0。 DOTNET_SYSTEM_NET_SOCKETS_* 本节重点介绍两个System.Net.Sockets环境变量: DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT 套接字延续从事件线程分派到System.Threading.ThreadPool。这避免了阻塞事件处理的延续。要允许继续直接在事件线程上运行,请设置DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS为1. 默认情况下它是禁用的。 笔记 如果有昂贵的工作最终会占用 IO 线程的时间超过所需时间,则此设置会使性能变差。测试以确保此设置有助于提高性能。 使用 TechEmpower 基准测试,在非常高的负载下生成大量小型套接字读取和写入,单个套接字引擎能够

04

【老孟Flutter】Flutter 2 新增的功能

今天,我们很高兴地宣布Flutter 2的发布。距离Flutter 1.0的发布已经两年多了,但是在很短的时间内,我们已经关闭了24,541期,并合并了765个贡献者的17,039个PR。自9月Flutter 1.22发布以来,我们已经关闭了5807期并合并了298位贡献者的4091个PR。特别感谢我们的志愿者捐助者,他们慷慨地抽出时间来改进Flutter项目。Flutter 2 release 版本前几名志愿者贡献者是xubaolin46个PR,a14n32个PR,专注于使Flutter达到零安全,hamdikahloun具有20个PR,改善了Flutter插件的数量。但是,不仅仅是编码员为Flutter项目做出了贡献。一大批志愿者PR评审人员还负责评审1525个PR,包括hamdikahloun(再次!),CareF和YazeedAlKhalaf(16个!)。Flutter确实是社区的一项工作,如果没有问题提出者,PR贡献者和代码审查者,我们就不可能进入第2版。此版本适用于所有人。

02

.NET SDK 概述

.NET SDK 是一组库和工具,允许开发人员创建 .NET 应用程序和库。它包含以下用于构建和运行应用程序的组件: .NET CLI。 .NET 库和运行时。 该dotnet 驱动程序。 获取 .NET SDK 与任何工具一样,第一件事是将工具安装到您的机器上。根据您的场景,您可以使用以下方法之一安装 SDK: 使用本机安装程序。 使用安装 shell 脚本。 本机安装程序主要用于开发人员的机器。SDK 使用每个受支持平台的本机安装机制进行分发,例如 Ubuntu 上的 DEB 包或 Windows 上的 MSI 包。这些安装程序根据需要安装和设置环境,以便用户在安装后立即使用 SDK。但是,它们还需要机器的管理权限。您可以在.NET 下载页面上找到要安装的 SDK 。 另一方面,安装脚本不需要管理权限。但是,它们也不会在机器上安装任何先决条件;您需要手动安装所有先决条件。这些脚本主要用于设置构建服务器或当您希望在没有管理员权限的情况下安装工具时(请注意上面的先决条件警告)。您可以在安装脚本参考文章中找到更多信息。如果您对如何在 CI 构建服务器上设置 SDK 感兴趣,请参阅在持续集成 (CI) 中使用 .NET SDK 和工具一文。 默认情况下,SDK 以“并行”(SxS) 方式安装,这意味着多个版本可以在任何给定时间在一台机器上共存。选择要使用的 .NET 版本一文中更详细地解释了在运行 CLI 命令时如何选择版本。

00
领券