在 VS2017 中使用元组,构建失败但没有显示错误
Using Tuple in VS2017, build failed but show no Error
var range = (first: 1, end: 10);
当我构建项目时,错误列表中没有错误window。
但输出 window 写道:
1>....cs(41,38,41,39): error CS1026: ) expected
1>....cs(41,40,41,41): error CS1001: Identifier expected
1>....cs(41,40,41,41): error CS1002: ; expected
1>....cs(41,41,41,42): error CS1002: ; expected
1>....cs(41,41,41,42): error CS1513: } expected
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
只有我去掉代码var range = (first: 1, end: 10);
这个项目才能搭建成功
顺便说一下,我使用的是 .NET Framework 4.6.2(不是 .Net Core)并且我已经安装了包 System.ValueTuple
我通过更新包 Microsoft.Net.Compilers(至版本 2.x.x)并将配置文件 (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>
我遇到了同样的问题,只需更新所有 NuGet 程序包即可解决。
var range = (first: 1, end: 10);
当我构建项目时,错误列表中没有错误window。 但输出 window 写道:
1>....cs(41,38,41,39): error CS1026: ) expected
1>....cs(41,40,41,41): error CS1001: Identifier expected
1>....cs(41,40,41,41): error CS1002: ; expected
1>....cs(41,41,41,42): error CS1002: ; expected
1>....cs(41,41,41,42): error CS1513: } expected
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
var range = (first: 1, end: 10);
这个项目才能搭建成功
顺便说一下,我使用的是 .NET Framework 4.6.2(不是 .Net Core)并且我已经安装了包 System.ValueTuple
我通过更新包 Microsoft.Net.Compilers(至版本 2.x.x)并将配置文件 (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>
我遇到了同样的问题,只需更新所有 NuGet 程序包即可解决。