首页 > 解决方案 > C# 8.0、NET Core 3.0 和 Visual Studio 之间的关系

问题描述

文章Building C# 8.0状态

目前的计划是 C# 8.0 将与 .NET Core 3.0 同时发布。但是,随着我们正在开发的 Visual Studio 2019 预览版,这些功能将开始活跃起来。

C# 8.0、NET Core 3.0 和 Visual Studio 有什么关系?

作为后续,我也对物理部署方面的新语言版本实际上是什么感到困惑。它是作为新的 Visual Studio 部署的一部分部署的新程序集,还是作为网络核心 sdk 安装的一部分或其他东西?C# 8 是否需要同时添加到完整框架和 .NET Core 中?

标签: c#.net-core-3.0c#-8.0

解决方案


.NET Core 3 发布后更新

C# 8.0 中添加的一些功能需要 .NET Core 3.0,因此它们之间的关系比 C#/.NET 以前更紧密。这对可以通过 VS 作为工作负载获取,但请记住 C# 8.0 和 .NET Core 3.0 不需要 VS;您可以在其他 IDE 中使用它们。

C# 语言版本控制文档更详细地描述了语言/.NET 关系。

有关一些实用的详细信息,您可以阅读如何在 Visual Studio 中以 C# 8.0 为目标

旧答案

查看C# 版本和 C# 工具的更新,它提供了有关与 Visual Studio 中的项目相关的语言的良好见解。

尤其是,

在这种情况下选择的默认语言版本是Preview。您可以访问的 C# 8.0 功能完全基于您使用的编译器版本(以及 .NET SDK)。当您使用未来的预览版时,您可能会获得更多(或略微调整)的功能。当您构建项目时,.NET SDK 将发出警告,表明这一切仍处于预览状态。

作为回答

C# 8.0、NET Core 3.0 和 Visual Studio 有什么关系?

语言、SDK 和 Visual Studio 版本之间的关系比以前松散了很多。该语言可以在其任何形式中独立于 .NET 发展。这并不意味着这将永远是真的。Visual Studio 也独立于语言和框架。如果您查看 Visual Studio 安装程序,您会发现语言和 .NET 支持是可以安装的“工作负载”。SDK 公开语言特性,VS 提供工具。

如果您现在使用 VS 2017,请查看

作为后续,我也对物理部署方面的新语言版本实际上是什么感到困惑

SDK 包含可以从 C# 8.0 源代码创建程序集的编译器。

它是作为新的 Visual Studio 部署的一部分部署的新程序集,还是作为网络核心 sdk 安装的一部分或其他东西?

SDK 的一部分,见上文。这意味着除了您的代码之外,没有“部署”任何内容。无论版本如何,您的代码都以 .NET 版本为目标。也就是说,目标版本的 .NET 必须存在于机器或容器上。

C# 8 是否需要同时添加到完整框架和 .NET Core 中?

它不需要“添加”。此框架 (4.8) 和 SDK (.NET Core 3.0) 的较新版本支持 C# 8.0。


推荐阅读