元组在VS 2017中不起作用

时间:2018-02-15 15:33:46

标签: c# visual-studio-2017 c#-7.0

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

 var Expense = function (id, description, value) {
    this.id = id;
    this.description = description;
    this.value = value;
    this.prcnt = 0;
};

我已将引用(通过NuGet)添加到IEnumerable<(Guid Id, string name)> GetFoo ();

Visual Studio和ReSharper都没有检测到此行的问题,但是当我构建时出现错误:

System.ValueTuple

这表明它没有使用C#7进行编译。

我的目标是.NET Framework 4.6.2。

我尝试过的事情:

  • 安装Visual Studio的最新更新
  • 通过Properties&gt;显式地使用C#7进行项目编译。构建&gt;高级&gt;语言版本
  • 添加对------ 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 / CLR / Visual Studio version requirements的副本,因为那里的解决方案(NuGet包)没有解决问题。

1 个答案:

答案 0 :(得分:2)

我想我已经解决了问题的根源。

项目导入:

<Import Project="$(MSBuildToolsPath)\Workflow.Targets" />

构建输出中的错误源是什么。如果我使用上面的代码将它导入一个简单的控制台项目,我可以重现错误。