.net - 在 Visual Studio 中,“目标框架”和高级构建设置“语言版本”有什么区别?
问题描述
在 Visual Studio(我目前使用 2017)中,您可以选择一个目标框架。
但您也可以在 Advanced Build Settings -> Language version 中选择语言设置:
我可以将目标框架设置为 4.7,将语言版本设置为4.7.2 和将目标框架设置为4.7.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 核心/标准之类的概念会在某种程度上混淆框架的选择,但我认为这超出了问题的范围。
推荐阅读
- ios - iOS April30(延长至 June30)2020 要求——iOS 13 SDK、全屏设计、启动 Storyboard、Swift3
- wordpress - GCP App Engine Standard 上的 WordPress:GCS 插件和存储桶权限问题
- mongodb - 使用一个命令在 mongodb 上插入/更新值
- html - 网格系统水平顺序
- python - Python中的固定CPU时间-Python中的Matlab tic toc等价物
- laravel - Laravel 默认电子邮件验证布局?
- azure-devops - 当 Bug 进入 Closed 或 Resolved 状态时,估计不会重置
- python - 如何将自定义 Django 用户模型注册到管理页面?
- reactjs - React Native 搜索栏与 react-navigation
- android - Android reCAPTCHA:验证用户响应:所有函数都必须调用客户端!但是我可以使用我的后端吗?