本文记录了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目录下)