在VS2017中使用Tuple,构建失败但没有显示错误

wtf*_*512 9 c# tuples c#-7.0 visual-studio-2017

var range = (first: 1, end: 10);
Run Code Online (Sandbox Code Playgroud)

构建项目时,"错误列表"窗口中没有错误.但输出窗口写道:

1> .... cs(41,38,41,39):错误CS1026 :)预期

1> .... cs(41,40,41,41):错误CS1001:预期的标识符

1> .... cs(41,40,41,41):错误CS1002 :; 预期

1> .... cs(41,41,41,42):错误CS1002 :; 预期

1> .... cs(41,41,41,42):错误CS1513:}预期

==========重建全部:0成功,1失败,0跳过==========

在此输入图像描述 只有当我删除代码var range = (first: 1, end: 10);时,此项目才能成功.

顺便说一下,我使用的是.NET Framework 4.6.2(不是.Net Core),我已经安装了这个软件包 System.ValueTuple

Kje*_*til 9

我通过更新软件包Microsoft.Net.Compilers(到版本2.xx)并将配置文件(web.config/app.config)中的/ langversion更改为7来解决了这个问题:

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:1659;1699;1701" />
    </compilers>
  </system.codedom> 
Run Code Online (Sandbox Code Playgroud)