在VS2013添加C# 6.0 Feature

开发团队还未升级使用VS2015前,又想尝试使用C# 6.0的语言特性,可以用以下方法启用:

VS2013中“工具”下选择“程序包管理器控制台”:

选中需要使用C# 6.0的项目,再敲入"Install-Package Microsoft.Net.Compilers"命令:

PM> Install-Package Microsoft.Net.Compilers
正在安装“Microsoft.Net.Compilers 1.0.0”。
您正在从 Microsoft 下载 Microsoft.Net.Compilers,有关此程序包的许可协议在 http://go.microsoft.com/fwlink/?LinkId=529444 上提供。请检查此程序包是否有其他依赖项,这些依赖项可能带有各自的许可协议。您若使用程序包及依赖项,即构成您接受其许可协议。如果您不接受这些许可协议,请从您的设备中删除相关组件。
已成功安装“Microsoft.Net.Compilers 1.0.0”。
正在将“Microsoft.Net.Compilers 1.0.0”添加到 Test。
已成功将“Microsoft.Net.Compilers 1.0.0”添加到 Test。

项目的packages.config文件中多了一个引用:

 <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net45" />

如果要在别的项目中启用,在程序包管理器控制台中切换项目,运行"Install-Package Microsoft.Net.Compilers"命令。

或者增加/修改packages.config文件,增加Microsoft.Net.Compilers引用,并修改*.csproj文件:

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
...


引用新的编译器后,在代码中测试一下:

            var website = "www.test.com";
            var port = 8080;
            var url = $"http://{website}:{port}/index.html";
            Console.WriteLine(url);

运行成功:

 

补充:

网上的资源上说可以在项目文件中添加<LangVersion>experimental</LangVersion>,或者自定义CsCToolPath的路径,都需要安装VS 14 CTP以上,目前看此法最为简便。

(http://thomasardal.com/how-to-enable-c-6-0-language-preview-in-visual-studio-14-ctp-3/)

参考:

New Features in C# 6

http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx

 

posted @ 2015-09-01 11:05  Tang.Lang  阅读(5501)  评论(0编辑  收藏  举报