c# - ValueTuple 在带有 MVC 5 的 Razor View 中不起作用

标签 c# asp.net razor asp.net-mvc-5 c#-7.0

我在 Visual Studio 2017 中有一个 ASP.NET MVC 5 项目,在成功添加 C# 7 支持(到目前为止对我有用)之后,我尝试在我的 Razor View 中使用元组,但我收到了一条令人惊讶的错误消息:

CS0433: The type 'ValueTuple<T1, T2>' exists in both 'System.ValueTuple, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' and 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

当然,我已经将 System.ValueTuple 安装为一个 nuget 包,但是这个错误表明 mscorlib 本身还有另一个实现 - 这有什么意义?毕竟,如果我从项目中删除 nuget 包,将无法再找到 ValueTuple。我的目标是 .NET Framework 4.5.2 并使用来自 ASP.NET 的所有包的最新版本。

这个问题似乎与新的 C# 7 语法无关,它只是由于尝试使用 ValueTuple 类型引起的:

ValueTuple<int, int> tuple;

Visual Studio 的 IntelliSense 给我的错误让我更加困惑,它说 ValueTuple 没有被引用,要使用它我必须添加对 System.运行时。安装有助于让 Visual Studio 平静下来,但在运行时不会产生任何影响。

最佳答案

Of course I have installed System.ValueTuple as a nuget package

我怀疑这就是问题所在。我的猜测是,即使您针对 .NET 4.5.2,您也 .NET 4.7 系统上运行,其中包括 System.ValueTuple 在 mscorlib 中。

我建议您删除对 System.ValueTuple 包的包依赖,并将您的目标框架更新为 .NET 4.7(因为您似乎正在运行它)...如果更改不会破坏其他东西,当然...

关于c# - ValueTuple 在带有 MVC 5 的 Razor View 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335228/

相关文章:

c# - 如何将字节数组解析为对象?

c# - 将 RTF 文件加载到 Windows richTextBox 时出现问题

javascript - JQuery DatePicker 多输入

asp.net - IIS 不释放内存

asp.net-mvc - 类型 'System.Web.Mvc.MvcWebRazorHostFactory' 的表达式不能用于返回类型 'System.Web.WebPages.Razor.WebRazorHostFactory'

javascript - 将数据扫描到 mvc web 应用程序然后改变焦点

c# - 更改Excel折线图中系列的颜色

asp.net - Web 应用程序设计师职位 - 我们应该寻找什么?

asp.net-mvc - 带有下拉菜单的动态年份绑定(bind)

c# - 利用NEST for ES FunctionScore具有可变数量的功能