C# 元组在VS 2017中不起作用

C# 元组在VS 2017中不起作用,c#,visual-studio-2017,c#-7.0,C#,Visual Studio 2017,C# 7.0,我在Visual Studio 2017中有一个C#库,我正在尝试在界面中使用元组: IEnumerable<(Guid Id, string name)> GetFoo (); 这表明它不是用C#7编译的 我的目标是.NETFramework 4.6.2 我尝试过的事情: 安装Visual Studio的最新更新 通过Properties>Build>Advanced>Language Version显式使用C#7编译项目 添加对Microsoft.Net.Compilers的

我在Visual Studio 2017中有一个C#库,我正在尝试在界面中使用元组:

IEnumerable<(Guid Id, string name)> GetFoo ();
这表明它不是用C#7编译的

我的目标是.NETFramework 4.6.2

我尝试过的事情:

  • 安装Visual Studio的最新更新
  • 通过Properties>Build>Advanced>Language Version显式使用C#7编译项目
  • 添加对Microsoft.Net.Compilers的引用
没有一个产生效果



编辑:不是的副本,因为那里的解决方案(NuGet软件包)并没有解决问题。

我想我已经找到了问题的根源

该项目导入:


这是生成输出中错误的来源。如果我用上面的代码将其导入一个普通的控制台项目,我就可以重现错误

这很奇怪,可能是重复的。“通过属性>构建>高级>语言版本明确使用C#7编译项目”应该是这个问题的解决方案。看起来某种预编译没有发生。。。但我只是胡乱猜测。你的目标是
C#最新的大版本
C#最新的小版本
还是
C#7.0
?谢谢大家。我认为这不是复制品。由于更广泛的环境限制,我无法以4.7.1为目标。我不这么认为。从生成日志中,它使用的是
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.targets
,这将是我的.NET版本的正确路径。我目前正试图确定是否可以删除此include(了解
Workflow.Targets
所做的事情似乎有点困难!)您可以删除它,但我想知道这是如何在您的console项目中结束的。如果打开它,它就是Windows工作流的
目标文件。它不应该出现在控制台项目中-它不是模板的一部分。您是否添加了引用WF的库或包?它是库而不是控制台项目。它是一个非常古老的代码库的一部分,因此它可能在过去某个时候需要,但现在不需要。我想不出需要它的理由。我将删除它,并对其进行连续集成/回归测试,以查看它是否有任何损坏。谢谢你的帮助!如果创建新的控制台应用程序或库,则在
.csproj
文件中不应看到对
工作流.targets
的任何引用。这就是为什么这么奇怪。