C# 无效选项';7';for/langversion;必须是ISO-1、ISO-2、默认值或范围为1到6的整数

C# 无效选项';7';for/langversion;必须是ISO-1、ISO-2、默认值或范围为1到6的整数,c#,visual-studio,compiler-errors,C#,Visual Studio,Compiler Errors,我在VisualStudio中有一个项目不会编译。 它抛出了很多错误,比如: 错误CS1001:需要标识符 ; 预期的 错误CS1022:类型或命名空间定义,或应为文件结尾 错误CS0116:命名空间不能直接包含字段或方法等成员 它在抱怨元组等现代C#结构。 每当我导航到这些文件时,VisualStudio不会标记任何错误,也不会在它们消失之前标记它们一秒钟 如果我转到项目属性(内部版本->高级…),则语言版本设置为“C#最新主要版本(默认)”。 如果我将其设置为7.0或更高版本以尝试获得对这些

我在VisualStudio中有一个项目不会编译。 它抛出了很多错误,比如:

错误CS1001:需要标识符
; 预期的
错误CS1022:类型或命名空间定义,或应为文件结尾
错误CS0116:命名空间不能直接包含字段或方法等成员

它在抱怨元组等现代C#结构。 每当我导航到这些文件时,VisualStudio不会标记任何错误,也不会在它们消失之前标记它们一秒钟

如果我转到项目属性(内部版本->高级…),则语言版本设置为“C#最新主要版本(默认)”。 如果我将其设置为7.0或更高版本以尝试获得对这些构造的支持,则在编译项目时将抛出以下错误:

/langversion的选项“7”无效;必须是ISO-1、ISO-2、默认值或范围为1到6的整数

因此,它似乎不接受C#高于6的版本

值得注意的是,这个项目是在一个存储库中共享的,团队的其他成员在编译它时都没有问题。 因此,这一切都指向我的机器或VisualStudio的本地设置问题,而不是项目的配置问题

需要考虑的一些事项:

  • 项目中正确引用了包“System.ValueTuple”,并将其设置为版本4.3.1
  • “Microsoft.Net.Compilers”软件包的版本为2.2.0
  • 该项目的目标框架设置为.NET framework 4.6.2
  • 我的Visual Studio是其最新版本15.8.7
以下是我尝试过的一些事情:

  • 将包“System.ValueTuple”和“Microsoft.Net.Compilers”升级到其最新版本
  • 我建造、重建和清理了这个项目
  • 我尝试将解决方案中的所有其他项目升级到同一版本的Microsoft.Net.Compilers
  • 我修复了Visual Studio的安装
但似乎什么都不管用

感谢您的帮助

  • 让你的同事创建一个他们可以完成的琐碎项目 编译(使用valuetuple的玩具项目)。准确地写下他们是如何做到这一点的。 验证此项目是否适用于他们,但不适用于您
  • 完全卸载Visual Studio(不,修复不会将其删除)
  • 安装VisualStudio。检查Visual Studio和Windows中的更新。全部应用
  • 重新启动计算机
  • 试着运行这个项目。如果成功了,你已经取得了进步(或者已经完成了)。如果失败了,你至少有最少的重新编程
  • 按照您的同事在步骤1中遵循的相同步骤创建一个全新的项目。(这一步很关键。创建一个新项目的行为通常会解决这类问题,或者给你一个新的工作项目,它可能与一个坏项目不同)
  • 胡乱摆弄(安装nuget控制台工具,手动添加/删除随机软件包,以及通常的胡乱摆弄)
  • 如果所有这些步骤都失败了,那就放弃吧。当你读到我的答案时,你已经花了一整天的时间试图解决这些问题。有人可能会设法解决你的问题,但你不知道这是需要1天还是30天。 诚然,整平/重建需要1-2(*)个完整工作日,但它几乎可以保证工作正常(假设您的入职流程稳健/一致)。如果替代方案浪费了一周,但仍然不一定成功,那么浪费1-2天是可以接受的

    (*)在这里,我假设您的入职流程是高效的。如果是一团糟,请记录该过程,以便您可以修复它

  • 将.csproj重命名为.txt并使用文本编辑器打开
  • 查找7
  • 将值更改为6并使用.csproj保存文件
  • 在VS中重新加载项目

  • 代码在哪里?欢迎来到StackOverflow!请查看上的帮助页面,确保您的问题提供了回答这些问题所需的所有信息。如果您同事的机器正常工作,而您的机器不正常,那么寻求帮助的明智的人就是您的同事。我们无法查看您的机器,并查看与您的同事相比有哪些配置错误;是的。@Steve,Tim-这更像是一个配置/环境设置问题。我想我包括了所有相关信息、版本和配置值。我不认为包含一段代码来显示元组的使用会增加任何价值或帮助解决问题。类似的问题和类似的信息已经发布和回答,不幸的是,这些解决方案在我的案例中不起作用。@Eric-谢谢。这是合理的。不幸的是,到目前为止我们一直在这样做。我只是万不得已才来的。我想我所发的信息足以让某人至少指出一个可能的原因。谢谢你这么好的回答。我想到了玩具项目,并创建了它。它在我的机器里编译。然而,我可能把它当成了一个玩具项目,因为它甚至不是一个web应用程序。然而,在这一点上,我们得出了与您相同的结论,并决定从头开始,因为这将有更好的保证,并可能最终节省时间。结帐