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

使用csc命令行编译器编译C#代码时无法识别Range类型的问题

解决csc编译时找不到System.Range的问题

核心原因

虽然你的编译器支持C# 8.0,但默认编译时可能未启用C# 8.0及以上的语言版本,或者目标框架未正确引用包含Range定义的程序集。

解决方案

1. 显式指定C#语言版本

csc默认的语言版本可能低于8.0(例如针对.NET Framework时默认是C# 7.3),编译时添加/langversion参数指定版本:

csc /langversion:8.0 a.cs

也可以直接使用latest自动启用编译器支持的最高版本:

csc /langversion:latest a.cs

2. 补充程序集引用(若仍报错)

如果指定语言版本后依然找不到Range,需根据目标框架补充引用对应的程序集:

  • 针对.NET Framework 4.8:显式引用System.Runtime.dll
    csc /langversion:8.0 /r:System.Runtime.dll a.cs
    
  • 针对.NET Core/.NET 5+:建议使用dotnet build命令自动处理依赖;若坚持用csc,需引用对应框架版本的System.Runtime.dll(路径根据你的安装版本调整):
    csc /langversion:8.0 /r:"C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.25\System.Runtime.dll" a.cs
    

验证语言版本

可以在代码中添加以下行,编译时会输出当前使用的语言版本,确认是否启用了8.0:

#error version

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:35:21