错误CS8107:特征';元组相等';在C#7.0中不可用。请使用7.3或更高版本的语言

错误CS8107:特征';元组相等';在C#7.0中不可用。请使用7.3或更高版本的语言,c#,visual-studio,visual-studio-2017,c#-7.0,c#-7.3,C#,Visual Studio,Visual Studio 2017,C# 7.0,C# 7.3,我有最新的Visual Studio 2017版本 我试过: 专门将C#版本项目设置为7.3 特别将C#版本项目设置为最新 手动修改项目的.csproj(最新版本和C#7.3版本) 更新了VisualStudio版本 使用.NET Framework 4.7而不是4.7.2 安装ValueTuple软件包(之后我立即卸载了该软件包) 安装Microsoft.Net编译器软件包的步骤 在所有这些之后,我的项目似乎仍然无法在C#7.3中编译,因为当我尝试在调试器中比较两个元组时,它会提示以下

我有最新的Visual Studio 2017版本

我试过:

  • 专门将C#版本项目设置为7.3

  • 特别将C#版本项目设置为最新

  • 手动修改项目的.csproj(最新版本和C#7.3版本)
  • 更新了VisualStudio版本
  • 使用.NET Framework 4.7而不是4.7.2
  • 安装ValueTuple软件包(之后我立即卸载了该软件包)
  • 安装Microsoft.Net编译器软件包的步骤
在所有这些之后,我的项目似乎仍然无法在C#7.3中编译,因为当我尝试在调试器中比较两个元组时,它会提示以下错误消息:

这转化为:错误CS8107:功能“元组相等”在C#7.0中不可用。请使用语言版本7.3或更高版本

这是我的代码:

 (CRiverGameState, int, bool) osti;
 bool canRaise = _gameState.GetLstAllowedActionsForCurrentPlayer().Contains(ActionsPossible.Raise);
 (CRiverGameState, int, bool) riverKey = (riverGameState, (int)_boardType, canRaise);

 foreach(var tabarnak in CDBHelper.PRiverAllGameStatesFoldStats.Keys)
 {
   if (tabarnak.Item1.PID == 2592 && tabarnak.Item2 == 1089 && tabarnak.Item3 == false)
     osti = tabarnak;
 }

我没有主意了。为什么我的项目是用C#7.0而不是C#7.3编译的?

您的调试器版本使用C#7.0

您的项目使用的是C#7.3,但调试器使用的是C#7.0

如果您这样做:

bool result = (osti == riverKey); // This will return true, but not in the debugger 

这将起作用。

我遇到了这个问题,尽管在更高版本的ie CS8370 C中,该功能在C 7.3中不可用。请使用语言版本{1}或更高版本。 我发现通过独立的VisualStudio安装程序获得最新的更新后,它马上就被清除了。
注意:使用Visual Studio“帮助”菜单中的“检查更新”选项,我遇到了一个非描述性错误。

请不要发布代码图像。相反,使用编辑工具发布文本并格式化文本。确保已为所有配置(调试、发布等)启用C#7.3。我更改了代码的图像,对此表示抱歉。我尝试了4种方法,但不幸的是,它不起作用。我的项目包含在一个包含其他项目的解决方案中,但这些其他项目也都更新为C#7.3。我已经尝试过“Directory.Build.props”功能,但仍然不起作用:(你应该编辑你的问题,而不是将其作为答案发布,事实并非如此。请使用问题上的编辑链接添加其他信息。发布答案按钮应仅用于问题的完整答案。-这是答案。如果你遇到此错误,你会知道为什么会得到它。我以为我的项目没有成功。)我没有使用c#7.3,但事实证明它使用的是c#7.3,当我使用“watch”时,调试器没有使用c#7.3变量。但是项目是用c#7.3编译的。我不知道为什么我的调试器使用c#7.0,我也不在乎,至少我知道我的项目是在c#7.3下运行的。这就是答案。现在如果这个人想将调试器更新到c#7.3,那么这不是问题。你可以向Microsoft报告错误