求助:Unity项目在Rider中重建解决方案时出现/langversion '9.0'无效选项错误
解决Odin Inspector与Rider重建解决方案的/langversion报错问题
我之前也碰到过一模一样的情况,Unity编辑器构建正常,但Rider里重建解决方案就报语言版本的错——这是因为Odin的两个子项目硬编码了C# 9.0的语言版本,而你的Unity 2021.2搭配Rider 2021.3环境里的编译器不支持这个版本导致的。给你几个亲测有效的解决办法:
方法一:手动修改Odin项目的.csproj文件
- 打开你的Unity项目,找到Packages/com.odininspector/Editor目录(如果是通过Package Manager安装的Odin,路径大致如此)。
- 找到
Sirenix.OdinInspector.CompatibilityLayer.csproj和Sirenix.OdinInspector.UnityMathematics.csproj两个文件,用记事本或Rider打开。 - 在文件中找到这行代码:
<LangVersion>9.0</LangVersion> - 把
9.0改成Default或者5,修改后如下:<LangVersion>Default</LangVersion> - 保存文件,回到Rider重新重建解决方案即可。
方法二:在Rider中直接修改项目语言版本设置
- 在Rider的解决方案资源管理器里,找到Packages节点下的
Sirenix.OdinInspector.CompatibilityLayer和Sirenix.OdinInspector.UnityMathematics两个项目。 - 右键点击其中一个项目,选择Properties(属性)。
- 左侧菜单切换到Build -> General,找到Language version选项,从下拉菜单里选
Default或者5。 - 对另一个项目重复同样操作,保存设置后重新重建解决方案。
方法三:更新Odin Inspector到最新版本
这个问题在Odin的后续版本中已经被修复了,如果你方便的话,可以直接在Unity的Package Manager里把Odin Inspector更新到3.0.12之后的版本,新版本会自动适配Unity 2021的编译器环境,不用手动修改配置。
内容的提问来源于stack exchange,提问作者Searle




