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