文章目錄
使用 JetBrains Rider 來 Debug Source Generators 或 Incremental Generators
之前筆記 使用 Source Generators 來為 method 加上時間測量 與 使用 Incremental Generators 來為 method 加上時間測量 紀錄到如何使用 Source Generators 與 Incremental Generators 來為 method 加上 stopwatch 測量 method 的執行時間,但 Source Generators 與 Incremental Generators 的專案特性、語法都與一般專案不同,當然 debug 方式也不一樣,今天就來記錄如何使用 JetBrains Rider 來 Debug Source Generators 或 Incremental Generators。
今天主要是紀錄如何 debug Source Generators 或 Incremental Generators 產生檔案的過程。
對產生出的檔案 debug 的方發,原則上跟一般專案的 debug 相同就不特別紀錄,前提是
- 先確定是否有正確執行,並且產生出預期的檔案
- 只有
netstandard2.0
或是netstandard2.1
會在 Dependencies 中出現
基本環境說明
- macOS Sequoia 15.1.1 (Apple M2 Pro)
- dotnet sdk 9.0.100
- JetBrains Rider 2024.3
NuGet package
- Microsoft.CodeAnalysis.CSharp 4.12.0
操作方式
新增
Properties/launchSettings.json
雖然 JetBrains 官方文件:Debug Source Generators in JetBrains Rider 需要將
Properties/launchSettings.json
放在 Source Generators 專案中,但我測試發現放在實際引用的專案也可正常啟動 debug執行 debug
可以從 launchSettings.json 側邊欄啟動
從
Run Widget
啟動我第一次沒有出現在
Run Widget
,我從 launchSettings.json 側邊欄啟動後才出現
心得
我自己測試的結論是
Properties/launchSettings.json
放在 Source Generators 專案或是實際引用的專案都可以正常啟動 debugProperties/launchSettings.json
只是啟動 debugger,但實際 debug 的專案還是看執行專案所引用的是哪一個在
SourceGenerators_ns21
專案的Properties/launchSettings.json
啟動 debug,但SourceGeneratorsDemo
專案設定的 ProjectReference 是SourceGenerators_ns20
,所以實際 debugger 是針對SourceGeneratorsDemo
專案進行 debug
參考資料
文章作者 Yowko Tsai
上次更新 2024-12-06
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。