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