我在Visual Studio 2017中有一个C#库,我正在尝试在界面中使用元组:
IEnumerable<(Guid Id, string name)> GetFoo ();
我已经添加了一个参考(通过NuGet)到
System.ValueTuple
.
Visual Studio和ReSharper都没有检测到此行的问题,但在生成时会出现错误:
------ Build started ------
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5):
error : Type expected
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5):
error : Invalid token '(' in class, struct, or interface member
declaration
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5):
error : Identifier expected; 'string' is a keyword
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5):
error : ; expected
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5):
error : Method must have a return type
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
这表明它不是使用C#7编译的。
我的目标是。NET Framework 4.6.2。
我尝试过的事情:
-
安装Visual Studio的最新更新
-
通过属性明确使用C#7编译项目>构建(>);高级(&T);语言版本
-
添加对的引用
Microsoft.Net.Compilers
没有一个产生影响。
编辑:
不是的副本
C# 7 .NET / CLR / Visual Studio version requirements
,因为解决方案(NuGet包)并没有解决问题。