C#8.0,NET Core 3.0和Visual Studio之间的关系 - c#

文章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中?

参考方案

.NET Core 3发行后的更新

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

C# language versioning文档更详细地描述了语言/.NET关系。

有关一些实用的详细信息,您可以阅读如何target C# 8.0 in Visual Studio。

旧答案

看一下An update to C# versions and C# tooling,它提供了与Visual Studio项目相关的语言的很好的见解。

特别是,

在这种情况下选择的默认语言版本是预览。您可以使用的C#8.0功能完全基于您使用的编译器版本(以及.NET SDK)。在使用将来的预览时,您可能会获得更多(或稍作调整)的功能。生成项目时,.NET SDK将发出警告,提示所有内容仍处于预览状态。

在回答

C#8.0,NET Core 3.0和Visual Studio之间是什么关系?

语言,SDK和Visual Studio版本之间的关系比以前松散得多。该语言可以以任何形式独立于.NET进行发展。这并不意味着那将永远是正确的。 Visual Studio也独立于语言和框架。如果看一下Visual Studio Installer,您会发现语言和.NET支持是可以安装的“工作负载”。 SDK公开了语言功能,而VS提供了工具。

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

因此Q&A on .NET Core 3.0 and VS 2017
This article on C# 8.0 in VS 2017

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

它是包含可从C#8.0源创建程序集的编译器的SDK。

是将新程序集部署为新的Visual Studio部署的一部分,还是网络核心SDK安装的一部分或其他?

SDK的一部分,请参见上文。这意味着除了您的代码外,没有“部署”任何东西。您的代码(无论哪个版本)都针对.NET版本。就是说,.NET的目标版本必须存在于计算机或容器上。

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

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

如何在ASP.NET Core Web应用程序中增加JSON反序列化MaxDepth限制 - c#

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2结合使用。我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。当他们进行此调用时,我们将输出以下日志并返回错误: 读取器的MaxDepth超过了32。路径“ super.long.path.to property”,第1行,位置42111。”我浏览了…

ASP.NET Core-在Singleton注入上存储库依赖项注入失败 - c#

我正在使用SoapCore为我的ASP.NET Core MVC应用程序创建Web服务。我正在使用Entity Framework Core和简单的存储库模式来获取我的数据库数据。我通过Startup.cs中的.AddSingleton()注入存储库类:services.AddSingleton<IImportRepository, ImportRep…

.NET Core 3 / EF.Core 3:QueryModelGenerator,RelationalQueryModelVisitor等发生了什么 - c#

我想知道发生了什么事:QueryModelGenerator,RelationalQueryModelVisitor和queryCompilationContext.CreateQuerymodelVisitor()似乎都消失了。我有以下代码,但无法尝试将其从2.2转换为.NET Core 3public static string ToSql<TEn…

如何将null传递给asp.net core 3.1中的终结点 - c#

我在asp.net core 3.1控制器中有以下操作[ApiController] [Route("example")] public class MyExampleController : ControllerBase { [HttpPost("{id}/value")] public async Task<…

无法在ASP.NET Core 2.0中发布原始类型 - c#

我正在将非常简单的json数据发布到.net Core 2.0 API。当我有这样的方法时,为什么会这样:public async Task<IActionResult> GetNewToken([FromBody]string id) 然后id为null,但是如果我将其封装在模型中:public class RandomViewModel { …