我在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。
我尝试过的事情:
------ 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包)没有解决问题。
答案 0 :(得分:2)
我想我已经解决了问题的根源。
项目导入:
<Import Project="$(MSBuildToolsPath)\Workflow.Targets" />
构建输出中的错误源是什么。如果我使用上面的代码将它导入一个简单的控制台项目,我可以重现错误。