繁体   English   中英

是否为每个解决方案配置设置了 C# 语言版本?

[英]Is the C# language version set per each solution configuration?

在开发 VS 2019 解决方案时,该解决方案包含一个针对 .NET 4.5.2 的项目和另一个针对 .NET 4.8 的项目,我观察到如果解决方案配置设置为“调试”以外的任何内容(此特定解决方案具有“DEV”、“ FEATURE”、“QA”、“STG”和“PROD”配置)我在 VS 错误列表 window 中看到错误指示“功能 _______ 在 C# 7.3 中不可用。请使用语言版本 8.0 或更高版本。”

作为参考,如果在此处选择“调试”以外的配置,则会观察到错误:

然后我收到这些错误:

有问题的项目设置为使用 C# 语言级别“默认(自动检测)”:

我可能不完全理解语言版本与不同解决方案配置的关系,以及为什么“调试”配置似乎使用正确的语言版本,而其他大火则没有。 但是,使用各种解决方案配置发布应用程序不会产生任何语言版本错误。

语言级别在项目文件中设置。 项目属性可以是特定于配置的,也可以是通用的。 (请注意,“解决方案配置”和“项目配置名称”也可以不同,这是一个复杂的问题。)

您应该查看项目文件 - 我希望您会找到具有Condition属性的LangVersion的 MSBuild 属性。 移除Condition属性以使该属性适用于所有配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM