代码之家  ›  专栏  ›  技术社区  ›  Kev

VS2017-C#7语言功能在MVC视图中不起作用

  •  7
  • Kev  · 技术社区  · 7 年前

    在中使用插值字符串。cshtml视图出现以下intellisense错误: Feature 'interpolated strings' is not used in C#5. Please use language version 6 or greater. 这和其他C#7语言功能在编译代码(.cs文件)中工作。

    如下所示,最新的主要版本 C#7。

    enter image description here

    根据中的评论 this question , “默认”是指“最新主要版本” .

    那么为什么会出现错误呢?此外,为什么它不显示“最新主要版本”和“最新次要版本”作为单独的列表选项,正如我在许多在线示例中看到的那样?

    更新:

    通过安装 CodeDom providers package (Microsoft.Net.Compilers包与Msbuild相关。CodeDOM Providers包与ASP.Net和其他在运行时编译的API相关,因此,即使为Msbuild选择了最新的语言版本,如果未安装,cshtml文件也会显示错误)。这会自动将以下内容添加到我的网站。配置:

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

    裁判: C# 6.0 Features Not Working with Visual Studio 2015

    我相信升级到MVC6也会解决这个问题。

    1 回复  |  直到 7 年前
        1
  •  4
  •   Julien Couvreur    7 年前

    我怀疑你问题的关键是当你说“在一个角度”。假设这是在ASP的上下文中。Net,你应该看看你的网站。config,它可以指定自己的LangVersion设置(在您的情况下可能硬编码为5)。

    Roslyn documentation issue .