作者:Generic
链接:https://www.zhihu.com/question/48864375/answer/113316462
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

造成这个问题的原因是微软没有为使用.NET Framework 4.6.1的http://ASP.NET Empty Web Site模板创建的网站启用C# 6支持,而且“网站”不像“应用程序项目”一样可以在“项目属性-生成-高级”窗口中设置语言版本,所以当使用C# 6语法时,给出提示:

功能“XXX”在C# 5中不可用。请使用语言版本6或更高版本。

<img src="https://pic1.zhimg.com/50/ef29893180be89925650df1ff654805d_hd.jpg" data-rawheight="392" data-rawwidth="964" class="origin_image zh-lightbox-thumb" width="964" data-original="https://pic1.zhimg.com/ef29893180be89925650df1ff654805d_r.jpg">可以通过安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform程序包解决:
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform安装好这个程序包后,会自动在Web.config文件中的configuration节点下添加如下节点:

<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.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.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
</compilers>
</system.codedom>

这时候C# 6便可以使用了。
&amp;amp;lt;img src="https://pic1.zhimg.com/50/d9a7fd775d69934518d46f30b2211a00_hd.jpg" data-rawheight="390" data-rawwidth="744" class="origin_image zh-lightbox-thumb" width="744" data-original="https://pic1.zhimg.com/d9a7fd775d69934518d46f30b2211a00_r.jpg"&amp;amp;gt;正常情况下应该没有问题了。不过,生成网站的时候,还可能会遇到另外一个问题,提示:

未能找到文件“XXX\bin\roslyn\csc.exe”。

出现这个问题可能是因为VS没有把Roslyn的编译器正确地放到网站Bin文件夹的roslyn文件夹中。这时候可以从Nuget程序包文件夹中复制Roslyn编译器到网站的Bin/roslyn文件夹中。Nuget程序包文件夹一般与.sln解决方案文件在同一个目录下。Roslyn编译器在Nuget文件夹中的路径是:

packages\Microsoft.Net.Compilers.1.0.0\tools

把这个文件夹中的文件全部复制过去就行了。

如何在ASP.NET 网站项目中使用C# 6?的更多相关文章

  1. 在 ASP.NET Core 项目中使用 MediatR 实现中介者模式

    一.前言  最近有在看 DDD 的相关资料以及微软的 eShopOnContainers 这个项目中基于 DDD 的架构设计,在 Ordering 这个示例服务中,可以看到各层之间的代码调用与我们之前 ...

  2. 在 ASP.NET MVC 项目中使用 WebForm、 HTML

    原文地址:http://www.cnblogs.com/snowdream/archive/2009/04/17/winforms-in-mvc.html ASP.NET MVC和WebForm各有各 ...

  3. 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

    一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...

  4. 如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites]

    如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites] 一.布局页面介绍[Abo ...

  5. 百度Web富文本编辑器ueditor在ASP.NET MVC3项目中的使用说明

    ====================================================================== [百度Web富文本编辑器ueditor在ASP.NET M ...

  6. 在ASP.NET MVC3项目中,自定义404错误页面

    在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中 ...

  7. 如何在 ASP.Net Web Forms 中使用依赖注入

    依赖注入技术就是将一个对象注入到一个需要它的对象中,同时它也是控制反转的一种实现,显而易见,这样可以实现对象之间的解耦并且更方便测试和维护,依赖注入的原则早已经指出了,应用程序的高层模块不依赖于低层模 ...

  8. 整合Spring.net到asp.net网站开发中初探

    整合Spring.net到asp.net网站开发中初探 http://www.veryhuo.com 2009-10-21 烈火网 投递稿件 我有话说   Spring提供了一个轻量级的用于构建企业级 ...

  9. 在 ASP.NET Core 项目中实现小写的路由URL

    在 ASP.NET MVC 早期版本中,我们可以通过在应用的 RegisterRoutes 方法中设置 routes.LowercaseUrls = true ; 来将页面的 URL 链接转小写.在 ...

随机推荐

  1. css3整理--calc()

    calc()语法: elem{ width:calc( 50% -2px ); } 取值说明: calc是计算的缩写,上句含义是:计算elem父元素的50%再减2px,并将结果赋值给elem的widt ...

  2. 凭据管理 API

    api 有相应更新 https://www.chromestatus.com/features/4781762488041472 <!DOCTYPE html> <html> ...

  3. 新复制行绑定JQuery.autocomplete事件

    在工作中经常需要生成动态增加行的表格,此次需要对表格中的文本框绑定autocomplete功能 操作流程: 表格初始时只有一行,当页面加载时执行先执行一次增加行功能,将行增加到10行 在$(funct ...

  4. javascript与java正则表达式写法的区别

    Js验证写法:(转义符\) var str = "待验证文本"; var regular = new RegExp(/这里是正则表达式/); if (regular.test(st ...

  5. acm入门练习心得

    A题  两数相加等于n相乘等于m 问是否存在两数 写了超级久没有写出来,因为我的思路是 把m的因子都找出来,加加看,看等不等于n.后来发现m的因子还要考虑负数的情况,还要考虑m是不是负数的情况.太过麻 ...

  6. robot framework教程-------虫师

    http://www.testclass.net/2017/09/28/happy-holidays/

  7. [No000010B]Git4/9-时光机穿梭

    我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed version c ...

  8. 【模板】HDU 1541 树状数组

    http://acm.hdu.edu.cn/showproblem.php?pid=1541 题意:给你一堆点,每个点右一个level,为其右下方所有点的数量之和,求各个level包含的点数. 题解: ...

  9. 在链表中,元素的"位序"概念淡化,结点的"位置"概念淡化

    在链表中,元素的"位序"概念淡化,结点的"位置"概念淡化 1 结点的描述与实现 C语言中用带指针的结构体类型来描述 typedef struct Lnode { ...

  10. Usage of git

    目录 Git 配置 查看配置信息 基本概念 Git 创建仓库 git init git clone 撤销操作 从暂存区恢复文件 从仓库恢复某个文件 版本退回 版本前进 分支操作 删除未跟踪的文件 连 ...