功能 'interpolated strings' 在 C# 5 中不可用。请使用语言版本 6 或更高版本

Feature 'interpolated strings' is not available in C# 5. Please use language version 6 or greater

有一个与此类似的问题,但我认为这涉及不同的原因。

我将 class 从较新的项目移到了较旧的项目中。两者都以 .net 4.6 为目标,但是在移动之后我在构建时收到以下错误。

Feature 'interpolated strings' is not available in C# 5. Please use language version 6 or greater.

我尝试在属性 window 中将我的项目设置为使用 C# 6 构建,没有任何更改。

终于找到修改的地方了。有时当您更新目标框架版本时,这似乎并没有改变。

安装 DotNetCompilerPlatform 版本 2.1.0

将此添加到您的 web.config。应该是安装DotNetCompilerPlatform后自动添加的。

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
  </compilers>
</system.codedom>

(可轻松适用VS 2019 - .NET Framework 4.8 Web Application项目)

安装DotNetCompilerPlatform v3.6后发现了这个问题

我已经在寻找 TheColonel26 的答案,但我无法更改所选的语言版本:

显然,我们无法更改所选的语言版本。 (For details look here)

之后我使用了 kfwbird 的答案,但对新版本进行了更改:

 <system.codedom>
     <compilers>
         <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
         <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
     </compilers>
 </system.codedom>

现在一切正常。

GUI 不允许我更改版本,但我可以在 csproj 文件中手动更改。

<LangVersion>5</LangVersion>

<LangVersion>6</LangVersion>