1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry Pi 4 の.NET 環境構築

Posted at

はじめに

Raspberry Pi 4B に、.NET 5 でコーディング、実行する環境を構築します。

2021年現在、デバッグ実行のためには、テスト中の拡張機能が必要です。

標準の Raspbian OS のデスクトップ上で、VS Code によるコーディング、実行を繰り返し、GPIO の動作を確認したいといった目的で利用する、初学者向けの環境構築手順です。vscode + C# の基本については省略して、Windows環境構築との差分について記述しています。

Raspbian 上で動かした vscode の動作は、決して軽快とは言えないので、本格的な開発を行う場合は、リモートSSHを使用して、コーディングと実行環境の分割を検討してください。

.NET SDK

Raspbian OS の標準イメージは 32bit カーネルのため、.NET SDK は、Arm32 を選択します。

Ubuntu の場合、パッケージでのインストールが可能ですが、Raspbian へは、手動でのインストール手順を実行します。

最新のSDKバージョン確認、ダウンロードURLは、以下から確認します。

.NET 5 > SDK - Arm32 のダウンロードページを開きます。

ダウンロードページの、コマンドと手順に基本的には従います。

公式の手順は、/home/pi 以下に配置していますが /usr/share/dotnet に配置します。

pi ユーザーの環境変数を設定します。

$ nano ~/.bashrc 

# dotnet sdk enviroments
export DOTNET_ROOT=/usr/share/dotnet
export PATH=$PATH:$DOTNET_ROOT

VS Code 関連

重要な問題点として、Raspberry Pi 上で動作させている VS Code で、デバッグを実行する正当な方法がありません。

C# 拡張機能の元である、OmniSharp が、ARMをサポートしていないためです。

C# 拡張機能をインストール後、dotnet new console で作成したプロジェクトフォルダーを開くと、以下の通知メッセージが表示されます。

The C# extension for Visual Studio Code (powered by OmniSharp) is incompatible on linux armv7l

本来ならば、自動で launch.json の生成するかを確認する通知メッセージが表示されます。

Feature Request の issue が発行されています。

修正のPRが、テスト進行中です。

慣れ親しんだ、F5 による実行とデバッグ (launch.json による定義) を可能にするには、後述のPR承認待ちの拡張機能をインストールします。

.NET 5 自体は、ARMをサポートしているため、ターミナルを開いて、dotnet build & dotnet run する事で、現在でも実行はできます。

csharp-1.23.17.vsix を先行テスト

armv7l が追加定義された vsix を手動インストールしてテストします。

※beta1 の 400k 程度のビルドを使用します。直近のビルドは、100Mを超えていて余計なものが含まれてしまっています。

ダウンロードした vsix をファイルからインストールすると、既存の拡張機能に上書きインストールされます。

Installing C# dependencies...
Platform: linux, armv7l, name=raspbian, version=10

Downloading package '.NET Core Debugger (linux / ARM)' (56954 KB).................... Done!
Validating download...
Integrity Check succeeded.
Installing package '.NET Core Debugger (linux / ARM)'

Finished

実行とデバッグを開き、launch.json をワークスペースに追加します。

構成の追加で、{} .NET: Launch .NET Core Console App を選択します。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/bin/Debug/net5.0/Xxxxx",
            "args": [],
            "cwd": "${workspaceFolder}",
            "stopAtEntry": false,
            "console": "internalConsole"
        }

    ]
}

program の部分を環境に合わせて修正します。

ビルドも実行できるように、ビルドタスクを作成します。

ターミナル > 既定のビルド タスクの構成... > テンプレートから task.json を生成 > .NET Core ビルドコマンドを実行

デバッグ実行の開始と、ブレークポイントによる停止が可能である事を確認しました。

2021-11-14-024306_1019x737_scrot.png

git のユーザー情報設定

コードを管理する GitHub ユーザー情報を git config で初期設定します。

$ git config --global user.name xxxxx
$ git config --global user.email xxxxx@exsample.com

「GitHub に公開」を可能にする

ソース管理から、GitHub に公開 を実行すると、エラーが発生します。
2021-11-07-022913_602x470_scrot.png
初回実行時に、ブラウザで vscode-auth.github.com でアクセストークンの発行後、出力の "GitHub Authentication" に、以下のエラーが出力されます。

Setting token failed: Error: The name org.freedesktop.secrets was not provided by any .service files

通知には、キーチェーンの保存に失敗したとのメッセージが表示されます。

$ sudo apt-get install gnome-keyring

gnome-keyring をインストール後、GitHub に作られてしまった空リポジトリを削除後に、公開を再実行します。

VS Code を起動する度に、キーチェインをアクティブにする為のパスワード入力を求められます。

参照記事

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?