次の方法で共有


ARM シングルボード コンピューターに .NET アプリを展開する

シングルボード コンピューターへの .NET アプリの展開は、他のプラットフォームと同じです。 アプリは 、自己完結型 または フレームワークに依存する デプロイ モードとして実行できます。 各戦略には利点があります。 詳細については、「 .NET アプリケーションの発行の概要」を参照してください。

フレームワークに依存するアプリのデプロイ

フレームワークに依存するデプロイの図を示すアニメーション GIF。SDK によってアセンブリが作成されます。このアセンブリにはターゲット デバイス上の .NET ランタイムが必要です。

フレームワークに依存するアプリとしてアプリをデプロイするには、次の手順を実行します。

  1. デバイスで SSH が有効になっていることを確認します。 Raspberry Pi については、 Raspberry Pi ドキュメントの SSH サーバーの設定 を参照してください

  2. dotnet-install スクリプトを使用して、デバイスに .NET をインストールします。 デバイス (ローカルまたは SSH) の Bash プロンプトから次の手順を完了します。

    1. 次のコマンドを実行して .NET をインストールします。

      curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel STS
      

      このコマンドを実行すると、最新バージョンがインストールされます。 特定のバージョンが必要な場合は、 --channel STS パラメーターを --version <VERSION>に置き換えます。ここで、 <VERSION> は特定のビルド バージョン ( 8.0.404 など) です。 バージョンの一覧については、 Visual Studio 用 .NET SDK に関するページを参照してください。 完全なビルド番号を確認するには、「Visual Studio 2022 SDK」列を参照してください。

    2. パスの解決を簡略化するには、 DOTNET_ROOT 環境変数を追加し、次のコマンドを使用して .dotnet ディレクトリを $PATH に追加します。

      echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
      echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
      source ~/.bashrc
      
    3. 次のコマンドを使用して、.NET のインストールを確認します。

      dotnet --version
      

      表示されるバージョンが、インストールしたバージョンと一致するかどうかを確認します。

  3. 開発環境に応じて、次のように開発用コンピューターにアプリを発行します。

    • Visual Studio を使用している場合は、アプリをローカル フォルダーにデプロイします。 発行する前に、発行プロファイルの概要で [編集] を選択し、[ 設定] タブを選択します。 デプロイ モードフレームワークに依存 するように設定され、 ターゲット ランタイムポータブルに設定されていることを確認します。
    • .NET CLI を使用する場合は、dotnet publish コマンドを使用します。 追加の引数は必要ありません。
  4. scpのような SFTP クライアントを使用して、開発用コンピューターの発行場所から SBC 上の新しいフォルダーにファイルをコピーします。

    たとえば、 scp コマンドを使用して開発用コンピューターから SBC にファイルをコピーするには、コマンド プロンプトを開き、次のコマンドを実行します。

    scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
    

    どこ:

    • -r オプションは、ファイルを再帰的にコピーするようにscpに指示します。
    • /publish-location/ は、前の手順で発行したフォルダーです。
    • pi@raspberrypi は、 <username>@<hostname>形式のユーザー名とホスト名です。
    • /home/pi/deployment-location/ は SBC 上の新しいフォルダーです。

    ヒント

    Windows の最近のバージョンには OpenSSH があり、 scpがプレインストールされています。

  5. Raspberry Pi (ローカルまたは SSH) の Bash プロンプトから、アプリを実行します。 これを行うには、展開フォルダーを現在のディレクトリとして設定し、次のコマンドを実行します ( ここで、HelloWorld.dll はアプリのエントリ ポイントです)。

    dotnet HelloWorld.dll
    

自己完結型アプリのデプロイ

自己完結型展開の図を示すアニメーション GIF。SDK は、.NET ランタイムにバンドルされたアセンブリを作成します。そのため、ターゲット デバイスには依存関係は必要ありません。

自己完結型アプリとしてアプリをデプロイするには、次の手順を実行します。

  1. デバイスで SSH が有効になっていることを確認します。 Raspberry Pi については、 Raspberry Pi ドキュメントの SSH サーバーの設定 を参照してください

  2. 開発環境に応じて、次のように開発用コンピューターにアプリを発行します。

    • Visual Studio を使用している場合は、アプリをローカル フォルダーにデプロイします。 発行する前に、発行プロファイルの概要で [編集] を選択し、[ 設定] タブを選択します。 デプロイ モード自己完結型 に設定され、 ターゲット ランタイムlinux-arm64 に設定されていることを確認します。

    • .NET CLI を使用する場合は、--runtime linux-arm64引数と--self-contained引数を指定して dotnet publish コマンドを使用します。

      dotnet publish --runtime linux-arm64 --self-contained
      

    重要

    32 ビット OS を使用している場合は、 linux-arm ランタイムをターゲットにする必要があります。

  3. scpのような SFTP クライアントを使用して、開発用コンピューターの発行場所から SBC 上の新しいフォルダーにファイルをコピーします。

    たとえば、 scp コマンドを使用して開発用コンピューターから SBC にファイルをコピーするには、コマンド プロンプトを開き、次のコマンドを実行します。

    scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
    

    どこ:

    • -r オプションは、ファイルを再帰的にコピーするようにscpに指示します。
    • /publish-location/ は、前の手順で発行したフォルダーです。
    • pi@raspberrypi は、 <username>@<hostname>形式のユーザー名とホスト名です。
    • /home/pi/deployment-location/ は SBC 上の新しいフォルダーです。

    ヒント

    Windows の最近のバージョンには OpenSSH があり、 scpがプレインストールされています。

  4. デバイス (ローカルまたは SSH) の Bash プロンプトから、アプリを実行します。 これを行うには、現在のディレクトリをデプロイの場所に設定し、次の手順を実行します。

    1. 実行可能ファイルの 実行 アクセス許可を付与します (ここで、 HelloWorld は実行可能ファイル名です)。

      chmod +x HelloWorld
      
    2. 実行可能ファイルを実行します。

      ./HelloWorld