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

C#编译报错CS1056:意外字符'$'的原因及解决方法

问题原因及解决办法

错误原因

CS1056错误提示意外字符$,是因为代码中使用了C# 6.0引入的字符串插值语法,而当前MSBuild构建过程调用的C#编译器版本不支持该特性。旧版本C#编译器(对应C# 5.0及更早)无法识别$开头的字符串插值语法。

解决办法

1. 明确设置项目的C#语言版本

在你的.csproj文件中添加或修改LangVersion属性,指定支持字符串插值的版本(6.0及以上):

<PropertyGroup>
  <!-- 可根据需求设置为6、7.3、latest等 -->
  <LangVersion>6</LangVersion>
</PropertyGroup>

2. 确保使用兼容的MSBuild版本

C# 6.0对应Visual Studio 2015及后续版本的MSBuild(版本号14.0及以上)。在命令行执行以下命令确认当前MSBuild版本:

msbuild -version

若版本低于14.0,需切换到对应Visual Studio版本的MSBuild路径,例如:

  • Visual Studio 2015:C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe
  • Visual Studio 2022:C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\msbuild.exe

3. 确认编译器路径正确

如果直接调用csc.exe编译,需确保使用Roslyn编译器(支持C# 6+),而非.NET Framework旧版本目录下的csc.exe。正确的Roslyn编译器路径通常在Visual Studio安装目录的Roslyn文件夹中,例如:

C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\BuildTools\bin\Roslyn\csc.exe

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:26:00