C#7 中用于元组的 NuGet 包在我的视图中导致错误

NuGet Package for Tuples in C#7 causes an error in my views

我正在尝试在 ASP.NET MVC 5 应用程序中使用 C# 7 中的新元组功能,使用 .NET 版本 4.6.1。和 Visual Studio 2017 RC。为此,我在这里引用了这篇文章:What's new in C# 7,其中说要通过 NuGet 安装 System.ValueTuple。当我这样做时,元组语法开始为我工作,就像在这个示例代码中一样:

public void TupleCaller()
{
   (var valOne, var valTwo) = TupleExample();
}

public (string, string) TupleExample()
{
    return ("Tuple Item One", "Tuple Item Two");
}

但是,当我 运行 应用程序时,我的视图立即抛出此错误:

CS0012: The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

我已经尝试了以下所有方法:

  1. 如错误所述添加对 System.Runtime 4.0 版的引用
  2. 通过安装 2.0 编译器尝试了此 and in this 中提供的内容。
  3. 在视图中手动添加对 System.Runtime 的引用(我想那时我有点绝望了)。

一旦我卸载 System.ValueTuple NuGet 包并注释掉新的 Tuple 代码,所有内容都会像以前一样在视图中正确呈现。

我遇到了同样的问题。我将 Microsoft.CodeDom.Providers.DotNetCompilerPlatform Nuget 包 (v1.0.3) 添加到我的项目中,它再次运行!

我只想补充其他答案。

从引用中删除 System.valuetuple。否则它不起作用,我不知道为什么。基本上 valuetuple 已经在 4.7.2 中,所以如果你使用 visual studio 2019 你就已经准备好了。

如果您使用 visual studio 2019 而我使用了,那对我来说就是有用的。我不知道为什么。不需要 nuget。无需直接引用。