Raspberry Pi などの ARM ベースの SBC で実行されているアプリ.NETデバッグには、固有の課題があります。 必要に応じて、Visual Studio Codeと.NET SDK をデバイスにインストールし、ローカルで開発できます。 ただし、デバイスのパフォーマンスにより、ローカルでのコーディングとデバッグは理想的ではありません。 さらに、C# のVisual Studio Code拡張機能は、32 ビット ARM オペレーティング システムと互換性がありません。 そのため、IntelliSense や ARM デバイス上のVisual Studio Codeでのデバッグなどの機能は、64 ビット システムでのみサポートされます。
このような理由から、開発用コンピューターでアプリを開発し、リモート デバッグのためにデバイスにアプリを展開することを強くお勧めします。 デバイスでローカルに開発およびデバッグする場合は、次のものが必要です。
- Raspberry Pi OS (64 ビット) などのデスクトップ環境を備えた 64 ビット OS。
-
Visual Studio CodeC# 拡張子。
- ハードウェア アクセラレーションを無効にします。
- .NET SDK 10 以降。
-
フレームワークに依存するデプロイと同様に、dotnet-install スクリプトを使用してインストールします。 必ず
DOTNET_ROOT環境変数を追加し、 .dotnet ディレクトリを$PATHに追加してください。
-
フレームワークに依存するデプロイと同様に、dotnet-install スクリプトを使用してインストールします。 必ず
この記事の残りの部分では、開発用コンピューターからリモートでシングルボード コンピューター上の.NET アプリをデバッグする方法について説明します。
Visual Studio Code (クロスプラットフォーム) からのデバッグ
Visual Studio Codeからのシングルボード コンピューターでの.NETのデバッグには、SBC とプロジェクトの launch.json ファイルでの構成手順が必要です。
SBC で SSH を有効にする
リモート デバッグには SSH が必要です。 Raspberry Pi で SSH を有効にするには、 Raspberry Pi ドキュメントの 「SSH を有効にする 」を参照してください。 パスワードレス SSH が構成されていることを確認します。
Important
この例では、OpenSSH ではコマンド ラインでのパスワードの受け渡しがサポートされていないため、デバイスでパスワード レス SSH を構成する必要があります。 パスワードを使用する必要がある場合は、 Plink ツール を ssh に置き換えます。
Visual Studio リモート デバッガーを SBC にインストールする
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 タブに切り替え、>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は、デバイスでアプリを起動するときに使用する作業ディレクトリです。 -
pipeProgramは、ローカル コンピューター上の SSH クライアントへのパスです。 -
pipeArgsは、SSH クライアントに渡されるパラメーターです。 パスワード パラメーターと、piユーザーを<user>@<hostname>形式で指定してください。
アプリをデプロイする
「 .NET アプリを ARM シングルボード コンピューターにデプロイするで説明されているように、アプリをデプロイします。 デプロイ パスが、cwd パラメーターで指定されたパスと同じであることを確認します。
デバッガーを起動する
Visual Studio Codeの Run and Debug タブで、launch.json に追加した構成を選択し、Start Debugging を選択します。 デバイスでアプリが起動します。 デバッガーは、ブレークポイントの設定、ローカルの検査などを行うために使用できます。
Windows のVisual Studioからデバッグする
Visual Studioは、SSH 経由でリモート デバイス上.NETアプリをデバッグできます。 デバイスに特別な構成は必要ありません。 Visual Studioを使用してリモートで.NETをデバッグする方法の詳細については、「 SSH を使用した Linux でのデバッグ .NETのリモートデバッグを参照してください。
フレームワークに依存するデプロイをデバッグする場合は、必ず dotnet プロセスを選択してください。 それ以外の場合、プロセスにはアプリの実行可能ファイルと同じ名前が付けられます。
.NET