ARM シングルボード コンピューターに .NET アプリを配備する
- [アーティクル]
-
-
.NET アプリをシングルボード コンピューターに配備する作業は、他のいかなるプラットフォームの場合と変わりません。 アプリは、自己完結型またはフレームワーク依存の配置モードとして実行できます。 それぞれの戦略に利点があります。 詳細については、「.NET アプリケーションの発行の概要」を参照してください。
アプリをフレームワーク依存アプリとして展開するには、次の手順を実行します。
デバイスで SSH が有効になっていることを確認します。 Raspberry Pi については、Raspberry Pi のドキュメントの「SSH サーバーの設定」を参照してください。
dotnet-install スクリプトを使用してデバイスに .NET をインストールします。 デバイス (ローカルまたは SSH) で Bash プロンプトから次の手順を実行します。
.NET をインストールするには次のコマンドを実行します。
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel STS
注意
これにより、最新バージョンがインストールされます。 特定のバージョンが必要な場合は、--channel STS
パラメーターを --version <VERSION>
に置き換えます (このとき、<VERSION>
が特定のビルド バージョンです)。
パスの解決を簡単にするには、次のコマンドを使用して、DOTNET_ROOT
環境変数を追加し、 .dotnet ディレクトリを $PATH
に追加します。
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc
次のコマンドを使用して、.NET インストールを確認します。
dotnet --version
表示されているバージョンが、インストールしたバージョンと一致していることを確認します。
開発環境に応じて、次のようにして、開発用コンピューターにアプリを発行します。
- Visual Studio を使用している場合は、アプリをローカル フォルダーに配置します。 発行する前に、発行プロファイルの概要で [編集] を選択し、 [設定] タブを選択します。 [配置モード] が [フレームワーク依存] に、 [ターゲット ランタイム] が [ポータブル] に設定されていることを確認します。
- .NET CLI を使用している場合は、dotnet publish コマンドを使用します。 追加の引数は必要ありません。
scp
などの SFTP クライアントを使用し、開発用コンピューターの発行場所から SBC 上の新しいフォルダーにファイルをコピーします。
たとえば、scp
コマンドを使用して開発用コンピューターから SBC にファイルをコピーするには、コマンド プロンプトを開き、次のコマンドを実行します。
scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
各値の説明:
-r
オプションは、ファイルを再帰的にコピーするように scp
に指示します。
- /publish-location/ は、前のステップで発行したフォルダーです。
pi@raspberypi
は、<username>@<hostname>
形式のユーザー名とホスト名です。
- /home/pi/deployment-location/ は、SBC 上の新しいフォルダーです。
ヒント
最新バージョンの Windows には、インストール済みの scp
が含まれている OpenSSH があります。
Raspberry Pi (ローカルまたは SSH) の Bash プロンプトから、アプリを実行します。 これを行うには、展開フォルダーを現在のディレクトリに設定し、次のコマンドを実行します (HelloWorld.dll はアプリのエントリ ポイントです)。
dotnet HelloWorld.dll
自己完結型アプリとしてアプリを展開するには、次の手順を実行します。
デバイスで SSH が有効になっていることを確認します。 Raspberry Pi については、Raspberry Pi のドキュメントの「SSH サーバーの設定」を参照してください。
開発環境に応じて、次のようにして、開発用コンピューターにアプリを発行します。
Visual Studio を使用している場合は、アプリをローカル フォルダーに配置します。 発行する前に、発行プロファイルの概要で [編集] を選択し、[設定] タブを選択します。[配置モード] が [自己完結] に、[ターゲット ランタイム] が [linux-arm64] に設定されていることを確認します。
.NET CLI を使う場合は、--runtime linux-arm64
および --self-contained
引数を指定して dotnet publish コマンドを使用します。
dotnet publish --runtime linux-arm64 --self-contained
重要
32 ビット OS を使用している場合、linux-arm
ランタイムをターゲットにする必要があります。
scp
などの SFTP クライアントを使用し、開発用コンピューターの発行場所から SBC 上の新しいフォルダーにファイルをコピーします。
たとえば、scp
コマンドを使用して開発用コンピューターから SBC にファイルをコピーするには、コマンド プロンプトを開き、次のコマンドを実行します。
scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
各値の説明:
-r
オプションは、ファイルを再帰的にコピーするように scp
に指示します。
- /publish-location/ は、前のステップで発行したフォルダーです。
pi@raspberypi
は、<username>@<hostname>
形式のユーザー名とホスト名です。
- /home/pi/deployment-location/ は、SBC 上の新しいフォルダーです。
ヒント
最新バージョンの Windows には、インストール済みの scp
が含まれている OpenSSH があります。
デバイス (ローカルまたは SSH) の Bash プロンプトから、アプリを実行します。 これを行うには、現在のディレクトリを配置場所に設定し、次の手順を実行します。
実行可能ファイルの実行アクセス許可を指定します (HelloWorld
は実行可能ファイルの名前です)。
chmod +x HelloWorld
実行可能ファイルを実行します。
./HelloWorld