.NET 6 攻略大全(四)( 三 )


我们希望只在一个版本中使用术语“crossgen2” , 之后它将替换现有的 crossgen , 然后我们将回到使用术语“crossgen”来表示“crossgen2” 。
.NET 诊断:EventPipe
EventPipe 是我们用于在进程内或进程外输出事件、性能数据和计数器的跨平台机制 。 从 .NET 6 开始 , 我们已将实现从 C++ 移至 C 。 通过此更改 , Mono 也使用 EventPipe 。 这意味着 CoreCLR 和 Mono 都使用相同的事件基础设施 , 包括 .NET 诊断 CLI 工具 。
这一变化还伴随着 CoreCLR 的小幅减小:

大小之后-大小之前 差异
libcoreclr.so7037856 – 7049408-11552
我们还进行了一些更改 , 以提高 EventPipe 在负载下的吞吐量 。 在最初的几个预览版中 , 我们进行了一系列更改 , 从而使吞吐量提高了 .NET 5 的 2.06 倍:
.NET 6 攻略大全(四)
文章图片

对于这个基准 , 越高越好 。 .NET 6 是橙色线 , .NET 5 是蓝色线 。
SDK
对 .NET SDK 进行了以下改进 。
▌.NET 6 SDK 可选工作负载的 CLI 安装
.NET 6 引入了SDK 工作负载的概念 。 工作负载是可选组件 , 可以安装在 .NET SDK 之上以启用各种场景 。 .NET 6 中的新工作负载是:.NET MAUI 和 Blazor WebAssembly AOT 工作负载 。 我们可能会在 .NET 7 中创建新的工作负载(可能来自现有的 SDK) 。 工作负载的最大好处是减少大小和可选性 。 我们希望随着时间的推移使 SDK 变得更小 , 并且只安装您需要的组件 。 这个模型对开发者机器有好处 , 对 CI 来说甚至更好 。
Visual Studio 用户并不真正需要担心工作负载 。 工作负载功能经过专门设计 , 以便像 Visual Studio 这样的安装协调器可以为您安装工作负载 。 可以通过 CLI 直接管理工作负载 。
工作负载功能公开了用于管理工作负载的多个动词 , 包括以下几个:
  • dotnet workload restore— 安装给定项目所需的工作负载 。
  • dotnet workload install— 安装命名工作负载 。
  • dotnet workload list— 列出您已安装的工作负载 。
  • dotnet workload update— 将所有已安装的工作负载更新到最新的可用版本 。
update 动词查询更新 nuget.org的工作负载清单、更新本地清单、下载已安装工作负载的新版本 , 然后删除所有旧版本的工作负载 。 这类似于 apt update && apt upgrade -y(用于基于 Debian 的 Linux 发行版) 。 将工作负载视为 SDK 的私有包管理器是合理的 。 它是私有的 , 因为它仅适用于 SDK 组件 。 我们将来可能会重新考虑这一点 。 这些 dotnet workload 命令在给定 SDK 的上下文中运行 。 假设您同时安装了 .NET 6 和 .NET 7 。 工作负载命令将为每个 SDK 提供不同的结果 , 因为工作负载将不同(至少相同工作负载的不同版本) 。
请注意 , 将 NuGet.org 中的工作负载复制到您的 SDK 安装中 , 因此如果 SDK 安装位置受到保护(即在管理员/根位置) , dotnet workload install则需要运行提升或使用sudo 。
▌内置 SDK 版本检查
为了更容易跟踪 SDK 和运行时的新版本何时可用 , 我们向 .NET 6 SDK 添加了一个新命令 。
dotnet sdk check 它会告诉您是否有可用于您已安装的任何 .NET SDK、运行时或工作负载的更新版本 。 您可以在下图中看到新体验 。
.NET 6 攻略大全(四)
文章图片

dotnet new
您现在可以在 NuGet.org 中搜索带有.dotnet new --search
模板安装的其他改进包括支持切换以支持私 有NuGet 源的授权凭据 。 --interactive

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。