在Visual Studio中,“目标框架”和高级构建设置“语言版本”之间有什么区别?

时间:2018-10-08 06:32:11

标签: .net visual-studio

在Visual Studio(目前使用2017)中,您可以选择目标框架。

target framework

但是您也可以在“高级构建设置”->“语言版本”中选择语言设置:

enter image description here

我可以将Target框架设置为4.7,将语言版本设置为 4。 7.2 这与将目标框架设置为4.7.2一样吗? 有什么区别?

1 个答案:

答案 0 :(得分:2)

.NET框架具有与C#语言不同的版本历史记录。例如,该框架定义了类库中存在哪些类。

C#语言版本定义了您可以使用的语法。例如,在第二版中,该语言为泛型,在3.0版中,该语言为 Linq ,依此类推。没有语言版本4.7.2,即最新的.NET框架的版本名称。如果您从语言版本下拉菜单中选择,您应该可以看到例如3.0、4.0、5.0、6.0、7.0、7.1、7.2和7.3(最新)。

https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history

所谓的“完整” .NET框架的通用框架版本是

4.0、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7、4.7.1、4.7.2。

https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies

您可以说语言版本仅在编译时适用。目标框架决定了应用程序的消费者将需要哪种框架。如果您以4.6版框架为目标,那么消费者将需要 至少是那个框架。

请注意,.NET核心/标准之类的概念在某种程度上混淆了框架的选择,但我认为这超出了问题的范围。