在asp.net应用程序中启用c# 7
在asp.net应用程序中启用c# 7
我刚刚开始在Visual Studio 2017上处理我的旧解决方案。在老的IDE中打开解决方案非常顺畅。
c#应用程序项目现在默认使用c# 7.0编译器。这些项目的属性页(编译/高级)可以很容易地选择编译器的目标语言版本,默认为最新版本。
但是我无法找到一种方法在asp.net web项目中启用c# 7.0。如果我写出这样的语句:
if (int.TryParse("1", out int myInt)) { ... }
IDE会警告我需要使用7+的语言版本。
我对这个主题的研究表明我应该在web.config文件的system.codedom编译器区域中针对特定的c#版本进行目标设置,从而针对最新的Roslyn版本。
现在我有的是:
这是针对c# 6的。如果我已经使用nuget下载了最新的Roslyn,正确的c# 7设置是什么?
更新
这是一个网络项目的可用编译选项的截图(这是意大利VS2017,但很容易理解)。没有选择目标c#版本的可能性。
admin 更改状态以发布 2023年5月22日
我可以使用默认语言设置编译它,但无法使用C# 7选项编译。
但是下面的设置会导致编译时出错:
因此,您可以将语言版本设置保持为默认设置。
如果您正在尝试使用Roslyn而不使用Visual 2017默认编译器构建,则可能需要进行一些更改。
选择您的项目名称,右键单击>>属性窗口>>构建,然后在"条件编译符号"文本框中添加下面的两个选项:__DEMO__,__DEMO_EXPERIMENTAL__
更新
为了使用C# 7.0,您需要使用2.0+版本的Microsoft.Net.Compilers
在安装了最新版本的Microsoft.Net.Compilers(2.0+)之后,您可以选择C# 7作为语言版本。
因此,最好的解决方案是安装最新版本的Microsoft.Net.Compilers(2.0+)。