首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C# 6.0功能不适用于Visual Studio2015

C# 6.0功能不适用于Visual Studio2015
EN

Stack Overflow用户
提问于 2015-01-16 01:06:45
回答 7查看 47.7K关注 0票数 138

我正在使用C# 6.0测试Visual Studio2015,但语言功能不起作用。在MVC web应用程序中,可以编译以下代码:

代码语言:javascript
复制
if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName))
{
    // More logic here...
}

但是,当我通过Debug和IIS Express运行应用程序时,我得到以下错误:

CS1525:无效的表达式术语‘’

如何启用这些功能?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-07-22 03:43:54

这在MVC5(经测试的5.2.3)中有效,您只需添加roslyn代码dom Nuget包

.NET编译器的CodeDOM提供程序...

使用新的

编译器平台("Roslyn")编译器作为服务CodeDOM的.NET替换API提供者。这为使用CodeDOM的系统中的新语言功能提供了支持(例如,ASP.NET运行时编译),并提高了这些系统的编译性能。

代码语言:javascript
复制
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/

票数 213
EN

Stack Overflow用户

发布于 2015-07-30 23:27:45

嗯,我有MVC5,最近安装了VS 2015。

我已经安装了CodeDOM提供程序包,但它没有帮助...但在那之后我意识到,这个包只支持框架4.5,而我在测试中将目标框架设置为4.6 -它可以与4.5一起工作……

所以也要注意目标框架。如果你有4.5版本--只需安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform.包但如果您的目标是4.5.1-4.6,则必须在web.config部分中进行更改

代码语言:javascript
复制
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">
          <providerOption name="CompilerVersion" value="v4.0"/>
      </compiler>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>

对于C#,只需将类型更改为:

代码语言:javascript
复制
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
票数 18
EN

Stack Overflow用户

发布于 2016-11-30 05:44:11

我在Visual Studio 2015中也遇到了同样的问题。这里的另一个答案提到了我使用的解决方案,但他们错误地指定了修复,并且从未给出澄清。

在Visual Studio菜单上,选择项目,如果遇到此问题,您应该会看到子项Enable C#6 /VB14。选择此菜单子项目。它将从Nuget下载正确的包并安装它们。之后,重新启动Visual Studio并重新加载您的解决方案。

我无法验证这是否也会将项目属性>构建>高级>语言版本选项修复为C# 6,因此您可能希望在从菜单启用C# 6后也选中此选项。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27968963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档