You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.iOS遇CS8370错误:如何强制编译器使用C#8.0语言版本?

解决Xamarin iOS项目中C# 8.0范围运算符无法使用的问题

问题重现

使用Visual Studio Community 2019(16.11.5版本,基于.NET Framework 4.8.04084)开发Xamarin iOS项目时,编写范围运算符[startIndex..endIndex]触发错误CS8370:Feature 'range operator' is not available in C# 7.3. Please use language version 8.0 or greater。即便修改项目文件<LangVersion>为8.0、调整目标框架、安装.NET Core 3.1运行时,通过#error version查看语言版本仍为7.3。

解决步骤

1. 强制项目文件全局设置C# 8.0语言版本

  • 右键iOS项目 → 选择卸载项目
  • 右键卸载后的项目 → 选择编辑 [项目名].csproj
  • 在项目文件的根<PropertyGroup>节点中添加或修改配置,确保覆盖所有配置和平台:
    <PropertyGroup>
      <!-- 强制设置C#语言版本为8.0 -->
      <LangVersion>8.0</LangVersion>
    </PropertyGroup>
    
  • 检查是否存在条件性的<LangVersion>设置(比如针对Debug/Release或不同平台的配置),若有则统一修改为8.0,避免被覆盖。

2. 确认Xamarin iOS项目的目标框架版本

Xamarin iOS对C# 8.0的支持依赖目标iOS版本,需确保:

  • 右键iOS项目 → 选择属性
  • 切换到应用程序选项卡
  • 在目标框架下拉菜单中选择iOS 13.0或更高版本(VS2019 16.11默认支持的最新iOS版本即可)

3. 清理并重建解决方案

  • 点击顶部菜单生成 → 清理解决方案
  • 手动删除项目目录下的bin和obj文件夹(清除缓存残留)
  • 点击顶部菜单生成 → 重建解决方案

4. 检查Visual Studio全局语言版本设置

  • 点击顶部菜单工具 → 选项
  • 展开项目和解决方案 → .NET Core → 选择高级
  • 在C#语言版本下拉菜单中选择8.0或最新,点击确定

5. 验证结果

完成上述操作后,再次通过#error version指令验证语言版本,正常情况下会显示C# 8.0。

内容的提问来源于stack exchange,提问作者Oleksandr Ragoza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:36:30