这里有一个类似的问题 链接,但我认为涉及到不同的原因。
我将一个类从一个较新的项目移动到了一个较旧的项目。两个项目的目标都是 .net 4.6,但移动后,在构建时遇到以下错误:
内插字符串 (interpolated strings) 特性在 C# 5 中不可用。请使用版本 6 或更高版本的语言。
我尝试在属性窗口中将项目设置为使用 C# 6 构建,但没有改变。
这里有一个类似的问题 链接,但我认为涉及到不同的原因。
我将一个类从一个较新的项目移动到了一个较旧的项目。两个项目的目标都是 .net 4.6,但移动后,在构建时遇到以下错误:
内插字符串 (interpolated strings) 特性在 C# 5 中不可用。请使用版本 6 或更高版本的语言。
我尝试在属性窗口中将项目设置为使用 C# 6 构建,但没有改变。
它可以轻松适用于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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
现在它按预期工作。
将以下代码添加到你的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>
GUI不允许我更改版本,但我可以在csproj文件中手动更改。
<LangVersion>5</LangVersion>
变为
<LangVersion>6</LangVersion>