生成CoreCLR - Windows篇
本文的唯一目的就是讓你運行Hello World
運行環境
Window 7+
Visual studio 2015
確保C++ 工具已經被安裝,默認是不安裝的,所以要選擇自定義模式,VS 2015 精簡版不支持。
CMake
下載 CMake for windows,並把Cmake的目錄添加到為PATH的系統變量里。
Python
下載Python for windows 並安裝,並把Python的目錄地址添加到Path系統變量中。
Powershell
powershell版本必須大於等於3.0,因為我用的是WIN10,默認為4.0,所以不用特別升級。
Git
新建一個目錄,名字為git,當然名字隨便取,放在一個你覺得適合的地方。然后在bash中執行如下命令克隆Repo.
C:\git>git clone https://github.com/dotnet/coreclr
C:\git>git clone https://github.com/dotnet/corefx
Demo 目錄
新建一個目錄,然后新建2個文件夾,一個取名叫runtime,一個取名叫packages.
Nuget
下載Nuget客戶端 並放在一個你覺得合適的地方。
Build
進入剛剛克隆好的目錄,然后執行build clean命令,系統會先安裝coreclr cli,這是個很長的過程,估計整個流程全跑完要30~40分鍾,所以耐心等吧。
對於CoreFx,那么就只要執行Build 就夠了。
復制DLL
一張圖足矣,CoreClr需要復制上面的文件,而CoreFx,只需要復制需要的,對於你這個CS文件來說需要的。文件從bin/product目錄底下找。
生成EXE
使用VS2015的命令行工具,執行如下命令,當然路徑什么的自己改。
csc /nostdlib /noconfig /r:runtime\mscorlib.dll /out:runtime\helloworld.exe helloworld.cs
Debug
大公告完了?沒呢,沒DEBUG算什么完成。
- 找到CoreCLR.sln這個項目(當然前提是編譯過了,不然直接從GIT上下載的沒這個東西),我電腦里面的目錄是:D:\coreclr2\coreclr\bin\obj\Windows_NT.x64.Debug。
- 找到Install並設為啟動項目
- 右鍵Install項目->屬性->調試,設置命令為:$(SolutionDir)..\..\product\Windows_NT.$(Platform).$(Configuration)\corerun.exe,命令參數:HelloWorld.exe,工作目錄為:$(SolutionDir)..\..\product\Windows_NT.$(Platform).$(Configuration),
- 按下F11,忽略一切阻礙!
問題匯總
解決方法 ,不過這種方法並不是最好的,因為會拖慢速度,因為是從遠程下載PDB。
但是遺憾的是,我的CoreCLR啟動失敗了。@dudu,求教為什么會失敗?
PS:編輯於2016-5-28 ,使用Windbg進行調試時候Symbol file could not be found的問題解決方法,使用Windbg進行調試的教程請參見本文的評論,如果出現了符號未加載,那么怎么解決呢?首先在VS中的選項->調試里面 找到符號的緩存地,如果還有不清楚的,請參見本文的其他地方;設置好以后,按一下F5運行一下程序,這個時候回自動從微軟的符號服務器中下載PDB文件,並緩存到此目錄。
然后打開Windbg並運行此EXE文件,在窗口中輸入如下命令:
.sympath D:\symbolCache;srv*c:\debugmsft*http://msdl.microsoft.com/download/symbols
然后再.restart重啟就OK了。