在asp.net应用程序中启用c#7
我刚开始在Visual Studio 2017中开发我的旧解决方案。只需在旧IDE中打开解决方案就可以无缝地工作。 c#应用程序项目现在默认为c#7.0编译器。这些项目(编译/高级)的属性页允许轻松选择编译器的目标语言版本,默认为最新版本 但是,我找不到在asp.net web项目中启用c#7.0的方法。 如果我写一份声明,如:在asp.net应用程序中启用c#7,c#,asp.net,visual-studio-2017,c#-7.0,C#,Asp.net,Visual Studio 2017,C# 7.0,我刚开始在Visual Studio 2017中开发我的旧解决方案。只需在旧IDE中打开解决方案就可以无缝地工作。 c#应用程序项目现在默认为c#7.0编译器。这些项目(编译/高级)的属性页允许轻松选择编译器的目标语言版本,默认为最新版本 但是,我找不到在asp.net web项目中启用c#7.0的方法。 如果我写一份声明,如: if (int.TryParse("1", out int myInt)) { ... } IDE警告我需要使用该语言的7+版本 我对这个主题的研究表明,我应该针对w
if (int.TryParse("1", out int myInt)) { ... }
IDE警告我需要使用该语言的7+版本
我对这个主题的研究表明,我应该针对web.config文件的system.codedom compilers区域中的特定c#版本,以便针对最新的Roslyn版本
我现在得到的是:
目标是c#6。如果我已经用nuget下载了最新的Roslyn,那么c#7的正确设置是什么
更新
下面是一个web项目可用编译选项的屏幕截图(它是意大利语VS2017,但应该很容易理解)。无法在此处选择目标c#版本
我可以使用默认语言设置编译它,但不能使用C#7选项。 但下面的设置给出了编译时错误: 因此,您可以将语言版本设置保留为默认设置 如果您尝试使用Roslyn而不使用Visual 2017默认编译器构建,则可能需要进行更多更改 选择项目名称,右键单击>>属性窗口>>构建,然后在“条件编译符号”文本框中添加以下两个选项 更新 为了使用C#7.0,您需要使用2.0+版本的 Microsoft.Net.Compilers 安装最新版本的Microsoft.Net.Compilers(2.0+)后,您可以选择C#7语言版本。
因此,最好的解决方案是安装最新版本的Microsoft.Net.Compilers(2.0+)。在网站的NuGet窗口中:
web.config
中,
在:system.codedom>compilers>compiler
下,
将编译器选项更改为7
有关更多信息:
packages.config
,则必须卸载并重新安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform
,以更新项目文件,使其指向nuget包的.net-4.6变体。如果您使用的是
,则一切就绪(但您必须手动配置web.config
的system.codedom
部分)我引用的是一个自定义项目a,它引用的是另一个自定义项目B。
我刚刚读了从A到B的参考资料,它似乎起了作用(目前)。您需要替换项目文件夹中的文件
/Bin/roslyn
使用NuGet软件包文件夹中的文件
/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0/tools/Roslyn472
在安装新版本的nuget期间,项目文件夹中的csv.exe未被替换。
在替换文件后,它工作得非常好
不要忘记将.Net版本更改为项目属性中的最新版本。是否尝试更改编译器选项?msdn文档说明它会影响到这一点。我尝试将其设置为/langversion:7。不编译。它返回:CS1617:langversion的无效选项“7”;必须是ISO-1、ISO-2、默认值或范围为1到6的整数。在C中为6rosoft在visual studio中添加了一个子菜单,名为“项目”>“启用C#6”“Julien,我希望微软能提供更简单的工具,但现在他们有两个软件包可以通过nuget获得:Microsoft.Net.Compilers(刚刚更新到v2.0.1)和Microsoft.CodeDom.Providers.DotNetCompilerPlatform compiler as a service(Roslyn),这两个软件包在v1.0.3(去年12月发布)中.我是否应该假设c#7尚未准备好用于asp.net?BankeTesthVar,即“高级构建设置”对话框仅适用于桌面和控制台应用程序。不适用于web项目。在web项目中,您必须手动编辑web.config文件。我已下载了编译器的版本2,但设置/langversion:7仍然会导致编译器错误。@davidthegrey,我不认为语言版本与控制台或w有任何关系eb应用程序。我能够使用ASP.NET MVC应用程序(本机框架和.NET核心)打开高级构建设置选项。我已经编译了ASp.NET核心Web应用程序以及C#7.0语言设置选项。您是否使用最新版本的Visual Studio 2017?我已经下载了2017年3月7日发布的最新版本的Visual Studio 2017 Enterprise。对于ASp.NET核心Web应用程序,我已经设置了语言版本