C#5中不提供"插值字符串"功能.请使用语言版本6或更高版本

The*_*l26 16 c# c#-6.0 .net-4.6

还有一个类似的问题这在这里,但我相信,涉及不同的原因.

我把一个班级从一个较新的项目搬到了一个较旧的项目中.两者都针对.net 4.6然而在移动后我在构建时收到以下错误.

C#5中不提供"插值字符串"功能.请使用语言版本6或更高版本.

我尝试将项目设置为在属性窗口中使用C#6进行构建而不做任何更改.

The*_*l26 17

我终于找到了改变它的地方.有时,当您更新目标框架版本时,这不会发生变化. 在此输入图像描述

  • 更改目标框架不应更改语言版本,更改语言版本不应更改目标框架. (2认同)
  • 答案在这里 /sf/ask/2208408961/,您需要添加一个 NuGet 包才能使其工作。 (2认同)

小智 11

安装DotNetCompilerPlatform版本2.1.0

  • 我有一个网站而不是网络应用程序,这是可行的解决方案。在另一篇文章中发现,我们可以通过选择网站,然后从菜单中选择网站 -> 启用 c#6 /VB 14 来添加这些包 (3认同)

baf*_*sar 8

(可以轻松适用VS 2019 - .NET Framework 4.8 Web应用程序项目)

安装 DotNetCompilerPlatform v3.6 后我已经意识到这个问题

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

高级构建设置 - 语言版本选择

显然,我们无法更改所选的语言版本。(详情请看这里

之后我使用了 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>
Run Code Online (Sandbox Code Playgroud)

现在它可以正常工作了。


小智 5

将其添加到您的 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>
Run Code Online (Sandbox Code Playgroud)