功能 '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=\"Web\" /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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
现在一切正常。
GUI 不允许我更改版本,但我可以在 csproj 文件中手动更改。
<LangVersion>5</LangVersion>
到
<LangVersion>6</LangVersion>
有一个与此类似的问题
我将 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=\"Web\" /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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
现在一切正常。
GUI 不允许我更改版本,但我可以在 csproj 文件中手动更改。
<LangVersion>5</LangVersion>
到
<LangVersion>6</LangVersion>