在 Raspberry Pi 上對 .NET 應用程式進行偵錯

對以 ARM 為基礎的 IoT 裝置上執行的 .NET 應用程式進行偵錯,例如 Raspberry Pi,會產生獨特的挑戰。 如有需要,您可以在裝置上安裝 Visual Studio Code 和 .NET SDK,並在本機開發。 不過,不建議在本機撰寫程式碼和偵錯裝置的效能。 此外,C# 的Visual Studio Code擴充功能與 32 位 ARM 作業系統不相容。 因此,只有 64 位系統才支援在 ARM 裝置上Visual Studio Code的 IntelliSense 和偵錯等功能。

基於這些原因,強烈建議您在開發電腦上開發應用程式,然後將應用程式部署至裝置以進行遠端偵錯。 如果您想要在裝置本機開發及偵錯,則需要下列專案:

本文的其餘部分說明如何從開發電腦遠端偵錯 Raspberry Pi 上的 .NET 應用程式及類似的裝置。

重要

在撰寫本文時,在環境中遠端偵錯 .NET 7 應用程式 linux-arm 並不可靠,而且可能會導致程式提前結束。 此問題正在調查中。 以 為目標 linux-arm 的 .NET 6 應用程式和以為目標 linux-arm64 的 .NET 7 應用程式不會受到影響。

從跨平臺Visual Studio Code (偵錯)

從 Visual Studio Code 偵錯 Raspberry Pi 上的 .NET 需要 Raspberry Pi 和專案launch.json檔案中的設定步驟。

在 Raspberry Pi 上啟用 SSH

遠端偵錯需要 SSH。 若要啟用 SSH,請參閱 Raspberry Pi 檔中的啟用 SSH。 請確定您已設定 無密碼 SSH

重要

此範例要求您在 Raspberry Pi 上設定 無密碼 SSH ,因為 OpenSSH 不支援在命令列上傳遞密碼。 如果您需要使用密碼,請考慮替代PuTTY for ssh隨附的plink工具。

在 Raspberry Pi 上安裝Visual Studio 遠端偵錯工具

在 Raspberry Pi 的 Bash 主控台中, (本機會話或透過 SSH) ,執行下列命令。 此命令會在 Raspberry Pi 上下載並安裝Visual Studio 遠端偵錯工具:

curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg

在 Visual Studio Code 中設定 launch.json

在開發電腦上,將啟動組態新增至專案的 launch.json。 如果專案沒有 launch.json 檔案,請切換至 [ 執行 ] 索引標籤,選取 [建立 launch.json 檔案],然後在對話方塊中選取 [.NET ] 或 [.NET Core ],以新增一個檔案。

launch.json中的新組態看起來應該類似下列其中一項:

"configurations": [
    {
        "name": ".NET Remote Launch - Self-contained",
        "type": "coreclr",
        "request": "launch",
        "program": "~/sample/sample",
        "args": [],
        "cwd": "~/sample",
        "stopAtEntry": false,
        "console": "internalConsole",
        "pipeTransport": {
            "pipeCwd": "${workspaceRoot}",
            "pipeProgram": "ssh",
            "pipeArgs": [
                "pi@raspberrypi"
            ],
            "debuggerPath": "~/vsdbg/vsdbg"
        }
    },

請注意:

  • program 是 所建立的 dotnet publish 可執行檔。
  • cwd 是在 Pi 上啟動應用程式時要使用的工作目錄。
  • pipeProgram 是本機電腦上的 SSH 用戶端路徑。
  • pipeArgs 是要傳遞至 SSH 用戶端的參數。 請務必指定密碼參數,以及 pi 格式 <user>@<hostname> 為 的使用者。

部署應用程式

將 .NET 應用程式部署至 Raspberry Pi中所述,部署應用程式。 請確定部署路徑與launch.json組態中的 參數中指定的 cwd 路徑相同。

啟動偵錯工具

在 [Visual Studio Code] 的 [執行和偵錯] 索引標籤上,選取您新增至launch.json的組態,然後選取 [開始偵錯]。 應用程式會在 Raspberry Pi 上啟動。 偵錯工具可用來設定中斷點、檢查區域變數等等。

在 Windows 上從 Visual Studio 偵錯

Visual Studio 可以透過 SSH 對遠端裝置上的 .NET 應用程式進行偵錯。 裝置上不需要特殊設定。 如需使用 Visual Studio 從遠端偵錯 .NET 的詳細資訊,請參閱 使用 SSH 在 Linux 上遠端偵錯 .NET

如果您要偵錯與架構相依的部署, dotnet 請務必選取進程。 否則,進程的名稱會與應用程式的可執行檔相同。