本文记录了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. AngularJS - Passing data between pages

    You need to create a service to be able to share data between controllers. app.factory('myService', ...

  2. sasasa

    /***************************************************************************************** 文件:app_to ...

  3. java打jar包,引用其他.jar文件

    大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...

  4. 场景7 Data Guard

    场景7  Data Guard 官方文档 :Oracle Data Guard Concepts and Administration 用于数据容灾,通过主备库同步(主库将redo日志传送到备库,一个 ...

  5. No matching provisioning profile found: Your build settings specify a provis...

    解决办法: (1)右键.xcodeproj文件,显示包内容--->找到project.pbxproj文件打开--->查找“PROVISIONING_PROFILE"---> ...

  6. js③

    while(true){ console.log('hello'); }/每次执行完语句块之后,又会跳回去检查小括号里面的布尔值,如果为true,那么又会执行语句块一次. //while循环//var ...

  7. centos7网络设置

    1.设置虚拟机网络连接方式 2.启动改为从驱动启动 3.启动虚拟机,使用命令 ip addr 查看ip,发现网卡配置为 eno16777736 如果找不到网卡配置文件,请返回安装过程,查看是否正确选择 ...

  8. PHP下使用强大的imagick轻松生成组合缩略图

    project: blog target: use-imagick-to-composite-images-thumbnail.md date: 2016-02-19 status: publish ...

  9. IntelliJ IDEA手工安python装插件方法

    IntelliJ IDEA手工安装插件方法 以IntelliJ IDEA 11.0.1安装python为例: (1)下载python插件地址:http://plugins.intellij.net/p ...

  10. visualssh 是一个可视化的ssh客户端

    这两个周末写了visualssh,一个可视化的ssh客户端.里面集成了putty的功能,通过ssh协议与Linux server通讯. 以后可以针对不同的应用编写相关插件,便于管理Linux服务器上的 ...