Déployer des applications .NET sur des ordinateurs monocartes ARM

Le déploiement d’applications .NET sur des ordinateurs monocartes est identique à celui de toute autre plateforme. Votre application peut s’exécuter sous des modes de déploiement autonomes ou dépendants de l’infrastructure. Chaque stratégie présente des avantages. Pour plus d’informations, consultez la vue d’ensemble de la publication d’applications .NET.

Déploiement d’une application dépendante du framework

Animated GIF showing a diagram of framework-dependent deployment. The SDK creates the assemblies, which require the .NET runtime on the target device.

Pour déployer votre application en tant qu’application dépendante de l’infrastructure, procédez comme suit :

  1. Vérifiez que SSH est activé sur votre appareil. Pour Raspberry Pi, reportez-vous à la section Configuration d’un serveur SSH dans la documentation Raspberry Pi.

  2. Installez .NET sur l’appareil à l’aide des scripts dotnet-install. Effectuez les étapes suivantes à partir d’une invite Bash sur l’appareil (local ou SSH) :

    1. Exécutez la commande suivante pour installer .NET :

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

      Notes

      Cela installe la dernière version. Si vous avez besoin d’une version spécifique, remplacez le paramètre --channel STS par --version <VERSION>, où <VERSION> est la version du build spécifique.

    2. Pour simplifier la résolution des chemins d’accès, ajoutez une variable d’environnement DOTNET_ROOT et ajoutez le répertoire .dotnet à $PATH à l’aide des commandes suivantes :

      echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
      echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
      source ~/.bashrc
      
    3. Vérifiez l’installation de .NET avec la commande suivante :

      dotnet --version
      

      Vérifiez que la version affichée correspond à la version que vous avez installée.

  3. Publiez l’application sur l’ordinateur de développement comme suit, en fonction de l’environnement de développement.

    • Si vous utilisez Visual Studio, déployez l’application dans un dossier local. Avant de publier, sélectionnez Modifier dans le résumé du profil de publication et sélectionnez l’onglet Paramètres. Vérifiez que Mode de déploiement est défini sur Dépendant de l’infrastructure et que Runtime cible est défini sur Portable.
    • Si vous utilisez l’interface .NET CLI, utilisez la commande dotnet publish. Aucun argument supplémentaire n’est requis.
  4. À l’aide d’un client SFTP comme scp, copiez les fichiers à partir de l’emplacement de publication sur l’ordinateur de développement vers un nouveau dossier sur le SBC.

    Par exemple, pour utiliser la commande scp pour copier des fichiers à partir de l’ordinateur de développement vers votre SBC, ouvrez une invite de commandes et exécutez les éléments suivants :

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

    Où :

    • L’option -r indique à scp de copier des fichiers de manière récursive.
    • /publish-location/ est le dossier dans lequel vous avez publié à l’étape précédente.
    • pi@raspberypi correspond aux noms d’utilisateur et d’hôte au format <username>@<hostname>.
    • /home/pi/deployment-location/ est le nouveau dossier sur le SBC.

    Conseil

    Les versions récentes de Windows ont OpenSSH, qui inclut scp, préinstallé.

  5. À partir d’une invite Bash sur le Raspberry Pi (local ou SSH), exécutez l’application. Pour ce faire, définissez le dossier de déploiement comme répertoire actif et exécutez la commande suivante (où HelloWorld.dll est le point d’entrée de l’application) :

    dotnet HelloWorld.dll
    

Déploiement d’une application autonome

Animated GIF showing a diagram of self-contained deployment. The SDK creates the assemblies bundled with the .NET runtime. Consequently, there are no dependencies required on the target device.

Pour déployer votre application en tant qu’application autonome, procédez comme suit :

  1. Vérifiez que SSH est activé sur votre appareil. Pour Raspberry Pi, reportez-vous à la section Configuration d’un serveur SSH dans la documentation Raspberry Pi.

  2. Publiez l’application sur l’ordinateur de développement comme suit, en fonction de l’environnement de développement.

    • Si vous utilisez Visual Studio, déployez l’application dans un dossier local. Avant de publier, sélectionnez Modifier dans le résumé du profil de publication et sélectionnez l’onglet Paramètres. Vérifiez que le Mode de déploiement est défini sur Autonome et que le Runtime cible est défini sur linux-arm64.

    • Si vous utilisez l’interface .NET CLI, utilisez la commande dotnet publish avec les arguments --runtime linux-arm64 et --self-contained :

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

    Important

    Si vous utilisez un système d’exploitation 32 bits, vous devez cibler le runtime linux-arm.

  3. À l’aide d’un client SFTP comme scp, copiez les fichiers à partir de l’emplacement de publication sur l’ordinateur de développement vers un nouveau dossier sur le SBC.

    Par exemple, pour utiliser la commande scp pour copier des fichiers à partir de l’ordinateur de développement vers votre SBC, ouvrez une invite de commandes et exécutez les éléments suivants :

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

    Où :

    • L’option -r indique à scp de copier des fichiers de manière récursive.
    • /publish-location/ est le dossier dans lequel vous avez publié à l’étape précédente.
    • pi@raspberypi correspond aux noms d’utilisateur et d’hôte au format <username>@<hostname>.
    • /home/pi/deployment-location/ est le nouveau dossier sur le SBC.

    Conseil

    Les versions récentes de Windows ont OpenSSH, qui inclut scp, préinstallé.

  4. À partir d’une invite Bash sur l’appareil (local ou SSH), exécutez l’application. Pour ce faire, définissez le répertoire actif sur l’emplacement de déploiement et effectuez les étapes suivantes :

    1. Accordez l’autorisation d’exécution à l’exécutable (où HelloWorld est le nom du fichier exécutable).

      chmod +x HelloWorld
      
    2. Exécutez l’exécutable.

      ./HelloWorld