本文记录了Roslyn开发环境的安装与编译过程,参考了以下Roslyn项目的官方文档

https://github.com/dotnet/roslyn/blob/master/docs/contributing/Building,%20Debugging,%20and%20Testing%20on%20Windows.md

开发环境:

  • Windows server 2008 R2虚拟机
  • 安装Git
  • 安装VS2015 Upadte 1 Community 版 
    • vs2015需要IE10以上的浏览器
    • 可在http://download.microsoft.com/download/5/7/A/57A99666-126E-42FA-8E70-862EDBADD215/vs2015.1.com_enu.iso下载vs2015的ISO版本,离线安装
    • 离线安装过程中,遇到了一个ms sql data client什么的安装错误,直接跳过了

下载源代码:

  • 创建工作目录c:\roslyn
  • 在工作目录下打开Git Bash, 并执行命令:git clone https://github.com/dotnet/roslyn.git。 命令完成后,会创建一个新的roslyn目录包含所有源代码,在c:\roslyn\roslyn 目录下可以看到三个解决方案文件:
    • Compilers.sln:只包含最基本的与编译过程相关的项目
    • CrossPlatform.sln:包含在linux环境中编译并运行roslyn的相关项目
    • Roslyn.sln:包含所有的项目
  • 在Git Bash中切换到c:\roslyn\roslyn目录,并执行命令:git checkout -b test,创建并切换到一个新的测试分支以保证以后的任何修改不会影响master分支。

编译与测试:

  • 刚下载的代码不能直接在VS2015中编译,直接在VS2015中编译的话会有三百多个编译错误。
  • 从开始菜单中打开"Developer Command Prompt for VS2015",切换到roslyn所在目录(c:\roslyn\roslyn)
  • 执行命令Restore.cmd恢复NuGet packages
  • 执行命令 msbuild /v:m /m Roslyn.sln 编译代码,编译完成后就可以在VS2015中正常编译所有代码了
  • 执行命令 msbuild /v:m /m BuildAndTest.proj 执行所有单元测试。除了C:\rosyln\roslyn\src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\WinMdTests.cs中的测试案例OtherFrameworkAssembly,其它所有单元测试都能通过。感觉这个失败的测试与环境有关,暂时没有在Windows 8或Windows 10环境中测试过。
  • 所有测试结果可以在C:\rosyln\roslyn\Binaries\Debug\xUnitResults目录下找到,均为xml格式
  • 在VS2015中将测试项目设为启动项目,并执行该项目可生成一个html格式的测试报告(也生成到C:\rosyln\roslyn\Binaries\Debug\xUnitResults目录下)

Roslyn 学习笔记(一)的更多相关文章

  1. Roslyn 学习笔记(二)

    参考:https://github.com/dotnet/roslyn/wiki/Getting-Started-C%23-Syntax-Analysis 语法分析过程主要用到以下类或结构: Synt ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  4. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  5. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  6. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  7. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  8. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  9. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

随机推荐

  1. Service Broker应用(1):简介、同server不同DB间的数据传输

    简介:SQL Server Service Broker,以下简称SSB,是一种完全基于MSSQL数据库的数据处理技术,为短时间内处理大量数据提供了一种可靠.稳定.高效的解决方案.一次同步的数据最大可 ...

  2. #HTML:無序、有序與定義清單

    #HTML:無序.有序與定義清單 Maplewing 于 星期六, 12/10/2013 - 09:48 提交 清單在網頁中是很常使用到的東西,故多少還是要了解一下.在HTML中有三種不太一樣的清單, ...

  3. C++ 之 新式转型操作符

    四种新式转型: const_cast.dynamic_cast.reinterpret_cast.static_cast!! 1.const_cast  :  去除常量性 2.dynamic_cast ...

  4. C++多线程环境下的构造函数

    多线程的环境里,我们总不可避免要使用锁.于是一个常见的场景就是: class ObjectWithLock { private: std::mutex mtx_; SomeResType shared ...

  5. 详解Android中AsyncTask的使用

    在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更 ...

  6. 涵涵和爸爸习惯养成进度表(三)(June 25 - )

    规则说明 23天内,没有哭脸,不超过三个无表情脸,可以给一个奖励(动画书等) 涵涵违反规则,在爸爸和妈妈都同意的情况下,可以给无表情脸 爸爸违反规则,在妈妈和涵涵都同意的情况下,可以给无表情脸 获奖记 ...

  7. how-to-add-global-asp-net-web-api-filters

    要实现给mvc 和api 接口全局添加日志统计,web api添加的方式有些不同 FilterConfig.cs 页面 public class FilterConfig { public stati ...

  8. C语言程序设计第10堂作业

    一.本次课主要内容: 本次课程学习数组,一种最基本的构造类型,它是一组相同类型数据的有序集合.数组中的元素在内存中连续存放,每个元素都属于同一种数据类型,用数组名和下标可以唯一地确定数组元素: (1) ...

  9. c# 远程连接ORACLE数据库

    使用该方法,只需要传入几个必要的参数就可以进行数据库的远程连接测试了,连接成功返回TRUE,失败返回false. 说明: 第一个参数表示你在数据库中的用户,具有可以登录权限的 第二个参数表示用户的密码 ...

  10. JDom2的Xpath使用

    /** * XPath获取属性值 * @param root * @param xPath * @return */ public static String getXPathAttributeVal ...