使用Dapr 編寫的是一個多程序的程式, 兩個程序之間依賴於啟動順序來組成父子程序,使用Visual Studio 偵錯起來可能會比較困難,因為 Visual Studio 預設只會把你當前設定的啟動專案的啟動偵錯。 好在有Visual Studio 擴充套件(Microsoft Child Process Debugging Power Tool 外掛)可以支援。這個思路來自 https://github.com/dapr/dotnet-sdk/issues/401
1、需要安裝 PowerShell 7 / Core (可使用命令列:dotnet tool install --global PowerShell
)
2、需要安裝 Visual Studio 擴充套件 Microsoft Child Process Debugging Power Tool 2022
安裝外掛後啟動 Visual Studio,可以在 Debug -> Other Debugging Targets 中找到 Child Process Debugging Settings。
然後你可以按照下圖的設定開啟此專案的子程序偵錯:
我這裡用的一個範例程式是 https://github.com/geffzhang/lab-dapr-with-famous-actors ,結合Dapr 和 Orleans 7.0 的一個Demo程式。
3、專案偵錯屬性設定
儲存後會自動生成檔案 launchSettings.json
launchSettings.json 內容也可以通過檔案直接修改,效果等同,檔案如下:
"Dapr-PWSH": {
"commandName": "Executable",
"executablePath": "pwsh",
"commandLineArgs": "-Command \"dapr run --app-id modDaprWithFamousActors --app-port 5000 --app-protocol grpc --log-level debug -- dotnet run --no-build\"",
"workingDirectory": ".",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"nativeDebugging": true,
"dotnetRunMessages": "true",
"applicationUrl": "http://localhost:5000;https://localhost:5001"
}
現在,你只需要開始偵錯你的程式,那麼你程式中啟動的新的子程序都將可以自動加入偵錯。
值得注意的是,只要啟動了本機程式碼偵錯,就不能在程式暫停之後修改程式碼了(像平時偵錯純受控程式碼那樣)。
歡迎大家掃描下面二維條碼成為我的客戶,扶你上雲