雖然現在 Microsoft Orleans已經有提供SourceLink支援,可以在執行偵錯模式時用除錯器直接『逐步執行(Step In)』到Orleans的核心原始碼,但是有時候還是需要自行建置測試版原始碼,例如想要提供貢獻發GitHub PR(Pull Request),或是要使用目前還沒正式版的 Orleans v7 的 POCO Grain功能。
目前 Orleans的原始碼分為兩個主要分支,一個是 v3.x
為目前穩定版的原始碼,另一個 main
為目前開發版的原始碼,也就是 Orleans v7 的原始碼:
Orleans是以Nuget套件方式發佈,我們可以在自己的開發電腦上建置除錯版的Nuget來使用,建置方法如下:
.\build.ps1
Install-Dotnet
指令註解掉再執行:[File]/[Explore Folder...]
的功能選取該目錄確認:除錯版的Nuget套件可以在自己的專案中使用,方法如下:
dotnet new nugetconfig
指令在自己的 .NET專案根目錄下產生一個 nuget.config 檔案。<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
<clear />
<add key="orleans dev build" value="D:\repo\orleans\Artifacts\Debug" />
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
新增的 <add key="orleans dev build" value="D:\repo\orleans\Artifacts\Debug" />
這一行是新增一個除錯版的Nuget套件所在的目錄成為Nuget套件來源,在此的範例中,key
是自行指定的任意名稱,value
則是Orleans原始碼建置出來除錯版Nuget套件所在的目錄路徑。dotnet nuget list source
指令驗證是否有新增成功:如此之後在該專案目錄內以 dotnet add package Orleans套件名稱 --version 3.0.0-dev-建置日期戳記 --prerelease
指令便會從除錯版的Nuget套件來源下載除錯版的Nuget套件來使用。
目前要使用 Orleans POCO Grain 的方式開發的話,需要使用 .NET 7 RC2 SDK 以上的版本,並使用 Orleans v7 RC2 版本的 Nuget 套件,或是自行從GitHub程式碼 main 分支建置 v7 版的除錯版 Nuget 套件。