共用方式為


在 ARM 單板電腦上除錯 .NET 應用程式

在像 Raspberry Pi 這類基於 ARM 的 SBC 上執行的 .NET 應用程式除錯是一項獨特的挑戰。 如果需要,你可以在裝置上安裝 Visual Studio Code 和 .NET SDK,並在本地開發。 然而,裝置的效能使得本地編碼與除錯並不理想。 此外,Visual Studio Code 的 C# 擴充功能與 32 位元 ARM 作業系統不相容。 因此,像 IntelliSense 以及 ARM 裝置上的 Visual Studio Code 除錯功能僅支援於 64 位元系統。

基於這些原因,強烈建議你先在開發電腦上開發應用程式,然後部署到裝置進行遠端除錯。 若您希望在裝置上本地開發與除錯,則需具備以下條件:

  • 一個 64 位元作業系統搭配桌面環境,例如 Raspberry Pi OS(64 位元)。
  • Visual Studio Code,並搭配 C# 擴展
  • .NET SDK 10 或更新版本。
    • 使用 dotnet-install 腳本安裝,如同在框架依賴部署中進行。 記得新增 DOTNET_ROOT 環境變數,並將 .dotnet 目錄加入 $PATH

本文的其餘部分將說明如何從開發電腦遠端偵錯單板電腦上的 .NET 應用程式。

從 Visual Studio Code 除錯(跨平台)

從 Visual Studio Code 除錯 .NET 需要在單板電腦上及專案的 launch.json 檔案中進行設定步驟。

在 SBC 上啟用 SSH

遠端除錯需要 SSH。 要在 Raspberry Pi 上啟用 SSH,請參考 Raspberry Pi 文件中的「啟用 SSH」。 請確保你已設定 無密碼 SSH

這很重要

這個例子需要你在裝置上設定 無密碼 SSH ,因為 OpenSSH 不支援在命令列傳遞密碼。 如果你需要用密碼,可以考慮用 Plink 工具 取代 ssh

在 SBC 上安裝 Visual Studio 遠端除錯器

在 SBC 的 Bash 主控台內(無論是本地工作階段或透過 SSH),執行以下指令。 此指令可在裝置上下載並安裝 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 檔案,請切換到 Run 分頁,選擇 create a launch.json file,並在對話框中選擇 .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 是啟動裝置應用程式時應使用的工作目錄。
  • pipeProgram 是通往本地機器上 SSH 用戶端的路徑。
  • pipeArgs 是要傳遞給 SSH 用戶端的參數。 務必指定密碼參數,以及格式pi中的使用者。<user>@<hostname>

部署應用程式

依照將 .NET 應用程式部署到 ARM 單板電腦中描述的方式部署應用程式。 確保部署路徑與 cwd 設定參數中指定的路徑相同。

啟動偵錯工具

在 Visual Studio Code 中,在 Run and Debug 標籤中,選擇你新增到 launch.json 的設定,並選擇 開始除錯。 應用程式會在裝置上啟動。 除錯器可用來設定斷點、檢視本地變數等。

從 Windows 上的 Visual Studio 除錯

Visual Studio 可以透過 SSH 除錯遠端裝置上的 .NET 應用程式。 裝置上不需要專門的設定。 若要詳細了解如何使用 Visual Studio 遠端偵錯 .NET,請參考使用 SSH 在 Linux 上遠端偵錯 .NET

如果您在除錯框架依賴性的部署,務必選擇dotnet流程。 否則,程序名稱將與應用程式的執行檔相同。