我有一个使用.net 4.5的旧项目,该项目已升级到.net 4.6.2。我正在使用Visual Studio 2017,因此它应该支持Lambda表达式,但是当我尝试运行我的项目时,它总是会引发以下错误:
类,结构或接口成员声明中的无效令牌'=>'
如何使用c#6编译我的项目?我认为仅升级目标框架就足够了吗?
答案 0 :(得分:2)
您极有可能需要设置高级构建设置
RightClick Project -> Properties -> Build -> Advanced build settings
将Language Version
设置为您喜欢的或合适的内容
答案 1 :(得分:0)
尝试使用Nuget(特定于2.10或更高版本)将Microsoft.Net.Compilers的引用添加到所述项目中,以强制编译器绑定使用4.6+功能。
在Project中未正确配置.Net编译器时,通常会出现无效的令牌类错误。
Install-Package Microsoft.Net.Compilers -Version 2.10.0
注意:如果您使用的是VS 2017,它应该会自动使用。
答案 2 :(得分:0)
通过更改默认语言版本,我开始收到另一个错误:
/ langversion的选项'7'无效;必须是ISO-1,ISO-2,默认值或1到6之间的整数
我对此进行了调查,找到了一些答案,这使我找到了正确的答案。 我唯一要做的就是更新程序包
Microsoft.Net.Compilers
它正在使用版本 1.3 ,我已升级到 2.10.0 ,一切正常。