首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# 8.0、NetCore3.0与Visual的关系

C# 8.0、NetCore3.0与Visual的关系
EN

Stack Overflow用户
提问于 2019-02-19 13:09:51
回答 3查看 4.6K关注 0票数 15

文章构建C# 8.0声明

目前的计划是C# 8.0将与.NET Core3.0同时发布。但是,这些特性将随着我们正在进行的Visual 2019预览而变得活跃起来。

C# 8.0、NETCore3.0与Visual之间的关系是什么?

作为后续,我也对新语言版本在物理部署方面究竟是什么感到困惑。它是作为新的visual studio部署的一部分部署的新程序集,还是net安装的一部分?C# 8需要同时添加到完整框架和.NET核心中吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-01 21:29:51

内核3发布后的更新

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

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

关于一些实用的细节,您可以阅读如何中的目标C# 8.0

旧答案

看看C#版本和C#工具的更新,它提供了一个很好的洞察力,因为它与Visual中的项目有关。

特别地,

在此场景中选择的默认语言版本是预览。您可以访问的C# 8.0特性完全基于您正在使用的编译器版本(因此也是.NET SDK)。当您使用未来预览时,您可能会获得更多(或稍作调整)功能。当您构建一个项目时,.NET SDK将发出警告,这一切仍然处于预览阶段。

回答

C# 8.0、NETCore3.0与Visual之间的关系是什么?

语言、SDK和Visual版本之间的关系比过去要松散得多。语言可以在它的任何化身中独立于.NET进化。但这并不意味着这一切都是真的。Visual也是独立于语言和框架的。如果您查看Visual安装程序,您将看到语言和.NET支持是可以安装的“工作负载”。SDK公开语言特性,VS提供工具。

如果您现在要使用VS 2017,请看一下

作为后续,我也对新语言版本在物理部署方面究竟是什么感到困惑

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

它是作为新的visual studio部署的一部分部署的新程序集,还是net安装的一部分?

SDK的一部分,见上面。这意味着除了您的代码之外,没有什么是“部署”的。您的代码,无论是哪个版本,都针对.NET的一个版本。也就是说,.NET的目标版本必须存在于机器或容器中。

C# 8需要同时添加到完整框架和.NET核心中吗?

它不需要“添加”。这个框架(4.8)和SDK (.NET Core3.0)的新版本提供了C# 8.0支持。

票数 7
EN

Stack Overflow用户

发布于 2019-02-25 20:21:08

C#语言包括一个规范以及名为Roslyn的引用编译器。

.Net版本(4.8或.net核心3)表示位于托管运行时( CLR)之上的框架(一组API),该框架执行编译后的程序(使用中间语言,一种汇编代码)。

虽然理想情况下,C#语言与平台无关,独立于框架和运行时,但在C#的历史上,设计了几个关键的语言特性,其中要么是当前版本的CLR不允许使用该特性,要么是基于更高级别的类型和框架添加(例如C# 5中的异步等待,以及在C# 7中在一定程度上对元组进行评估)。

使用C# 8时,异步流和范围等语言特性需要新的框架类型,这些新框架类型在当前/早期版本的框架中同样不存在。新的默认接口成员需要CLR更改。因此,这些语言特性(语法)不会针对以前的框架和CLR版本进行编译。

与以前的语言迭代不同,微软并没有在新的.Net框架4.8版本中发布这些需求。相反,他们正在推动.Net Core3.0作为参考平台,允许他们更快地进行迭代。

关于Visual,虽然您可以在C#的早期版本中用.Net 8编写代码,并根据.Net Core3.0运行时编译代码,但是您可能会损失大量的工具、简单性和开发人员经验。围绕语法突出显示、完成、代码修复等的工具依赖于Roslyn,它提供了丰富的代码分析API。

由于框架和语言部署不是完全同步的,所以使用Visual预览提供(大部分)兼容的框架和语言版本来测试这两者的新特性。

一个很好的参考是构建C# 8.0博客文章中的“平台依赖”一节。

编辑:

要回答评论问题“C# 8是如何安装的”:语言规范是作为编译器(Roslyn)实现和交付的。请参阅罗斯林GitHub存储库,它概述了编译器是如何生成、发布和安装的--不管是否安装了特定的Visual。

票数 7
EN

Stack Overflow用户

发布于 2019-02-27 16:56:55

有两种方法可以让C# 8.0编译:

  • 将下一个Visual与理解它的Roslyn编译器一起使用。( f.e.2019)
  • 安装独立的.NET Core (可用时为3.0.0)并调用“dotnet”

现在构建.NET核心3.0.0需要安装相同的SDK。

构建.NET 4.8需要安装.NET完整的Framework4.8SDK。

这两个SDK可能都会随VisualStudio2019一起发布,或者您将不得不稍后安装它们,以便能够针对这些框架。

所以:- C# -> Roslyn编译器

  • 运行时->对应的SDK

小附录:考虑到对C#中新特性的支持,显然微软不会使.NET完全框架(4.8及更高版本) .NET标准2.1兼容。在未来,只有.NET核心将继续发展。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54767129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档