C# 老项目没有';我不认识lambda表达式

C# 老项目没有';我不认识lambda表达式,c#,visual-studio,C#,Visual Studio,我有一个使用.NET4.5的旧项目,我已将其升级到.NET4.6.2。我正在使用visual studio 2017,因此它应该支持lambda表达式,但当我尝试运行我的项目时,它总是抛出以下错误: 类、结构或接口成员声明中的标记“=>”无效 如何让我的项目使用c#6进行编译?我认为仅仅升级目标框架就足够了?您最有可能需要设置高级构建设置 RightClick Project -> Properties -> Build -> Advanced build settings

我有一个使用.NET4.5的旧项目,我已将其升级到.NET4.6.2。我正在使用visual studio 2017,因此它应该支持lambda表达式,但当我尝试运行我的项目时,它总是抛出以下错误:

类、结构或接口成员声明中的标记“=>”无效

如何让我的项目使用c#6进行编译?我认为仅仅升级目标框架就足够了?

您最有可能需要设置高级构建设置

RightClick Project -> Properties -> Build -> Advanced build settings
语言版本
设置为您最喜欢的或适当的版本

您最有可能需要设置高级生成设置

RightClick Project -> Properties -> Build -> Advanced build settings
语言版本
设置为您最喜欢的或适当的版本


尝试使用Nuget(针对2.10或更高版本)将Microsoft.Net.Compilers的引用添加到所述项目中,以强制编译器绑定使用4.6+功能

无效令牌类错误通常在项目中未正确配置.Net编译器时出现

安装软件包Microsoft.Net.Compilers-版本2.10.0


注意:如果您使用的是VS 2017,它应该会自动执行此操作。

尝试使用Nuget(针对2.10或更高版本)将Microsoft.Net.Compilers的引用添加到所述项目中,以强制编译器绑定使用4.6+功能

无效令牌类错误通常在项目中未正确配置.Net编译器时出现

安装软件包Microsoft.Net.Compilers-版本2.10.0


注意:如果您使用的是VS 2017,它应该会自动执行此操作。

通过更改默认语言版本,我开始出现另一个错误:

/langversion的选项“7”无效;必须是ISO-1、ISO-2、默认值或范围为1到6的整数

我对此进行了调查,找到了一些答案,从而得出了正确的答案。 我唯一要做的就是更新软件包

Microsoft.Net.Compilers


它使用的是版本1.3,我升级到2.10.0,一切正常。

通过更改默认语言版本,我开始出现另一个错误:

/langversion的选项“7”无效;必须是ISO-1、ISO-2、默认值或范围为1到6的整数

我对此进行了调查,找到了一些答案,从而得出了正确的答案。 我唯一要做的就是更新软件包

Microsoft.Net.Compilers


它使用的是1.3版,我升级到2.10.0,一切正常。

你能给我们看一些代码吗?Lambda是C#3,对吗?所以是针对.NET3-3.5的。应该很好。语法可能是无效的或类似的吗?你能给我们看一些代码吗?Lambda是C#3,对吗?所以是针对.NET3-3.5的。它应该是好的。语法可能无效或类似于这样的东西吗?默认情况下,版本设置为使用最新的主要版本,但在更改我的版本时,我遇到了一个新错误。默认情况下,版本设置为使用最新的主要版本,但在更改版本时,我遇到了一个新错误。我已将运行在.net 4.5上的一个项目迁移到.net 4.7,并且能够毫无问题地使用标记lambdas等功能。注意:我一直在使用VS 2015,并且能够成功地迁移和发布它。我已经将运行在.net 4.5上的一个项目迁移到了.net 4.7,并且能够毫无问题地使用令牌lambdas等功能。注意:我一直在使用VS 2015,并且能够成功地迁移和发布它。