Leer en inglés

Compartir a través de


Implementación de aplicaciones de .NET en equipos de placa única ARM

La implementación de aplicaciones de .NET en equipos de placa única es idéntica a la de cualquier otra plataforma. La aplicación se puede ejecutar según los modos de implementación independiente o dependiente del marco. Cada estrategia tiene sus ventajas. Para obtener más información, vea Información general sobre la publicación de aplicaciones .NET.

Implementación de una aplicación dependiente del marco

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

Para implementar la aplicación como una aplicación dependiente del marco, complete los pasos siguientes:

  1. Asegúrese de que SSH está habilitado en el dispositivo. Para Raspberry Pi, consulte Configuración de un servidor SSH en la documentación de Raspberry Pi.

  2. Instale .NET en el dispositivo con los scripts dotnet-install. Desde un símbolo del sistema de Bash en el dispositivo (local o SSH), realice los pasos siguientes:

    1. Ejecute el comando siguiente para instalar .NET:

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

      Nota

      De este modo se instala la versión más reciente. Si necesita una versión concreta, reemplace el parámetro --channel STS por --version <VERSION>, donde <VERSION> es la versión de compilación específica.

    2. Para simplificar la resolución de la ruta de acceso, agregue una variable de entorno DOTNET_ROOT y el directorio .dotnet a $PATH con los comandos siguientes:

      echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
      echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
      source ~/.bashrc
      
    3. Compruebe la instalación de .NET con el comando siguiente:

      dotnet --version
      

      Compruebe que la versión mostrada coincide con la que ha instalado.

  3. Publique la aplicación en el equipo de desarrollo de la siguiente manera, en función del entorno de desarrollo.

    • Si usa Visual Studio, implemente la aplicación en una carpeta local. Antes de la publicación, seleccione Editar en el resumen de perfil de publicación y seleccione la pestaña Configuración. Asegúrese de que Modo de implementación está establecido en Dependiente de marco de trabajo y Tiempo de ejecución de destino en Portable.
    • Si usa la CLI de .NET, utilice el comando dotnet publish. No se necesitan argumentos adicionales.
  4. Con un cliente SFTP como scp, copie los archivos de la ubicación de publicación del equipo de desarrollo en una nueva carpeta del equipo SBC.

    Por ejemplo, para usar el comando scp para copiar archivos del equipo de desarrollo al equipo SBC, abra un símbolo del sistema y ejecute lo siguiente:

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

    Donde:

    • La opción -r indica a scp que copie los archivos de forma recursiva.
    • /publish-location/ es la carpeta en la que ha publicado en el paso anterior.
    • pi@raspberypi es el usuario y los nombres de host con el formato <username>@<hostname>.
    • /home/pi/deployment-location/ es la nueva carpeta en el equipo SBC.

    Sugerencia

    Las versiones recientes de Windows tienen OpenSSH, que incluye scp preinstalado.

  5. Ejecute la aplicación desde un símbolo del sistema de Bash en el dispositivo Raspberry Pi (local o SSH). Para ello, establezca la carpeta de implementación como el directorio actual y ejecute el comando siguiente (donde HelloWorld.dll es el punto de entrada de la aplicación):

    dotnet HelloWorld.dll
    

Implementación de una aplicación independiente

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.

Para implementar la aplicación como una aplicación independiente, complete los pasos siguientes:

  1. Asegúrese de que SSH está habilitado en el dispositivo. Para Raspberry Pi, consulte Configuración de un servidor SSH en la documentación de Raspberry Pi.

  2. Publique la aplicación en el equipo de desarrollo de la siguiente manera, en función del entorno de desarrollo.

    • Si usa Visual Studio, implemente la aplicación en una carpeta local. Antes de la publicación, seleccione Editar en el resumen de perfil de publicación y elija la pestaña Configuración. Asegúrese de que Modo de implementación esté establecido en Independiente y Tiempo de ejecución de destino lo esté en linux-arm64.

    • Si usa la CLI de .NET, utilice el comando dotnet publish con los argumentos --runtime linux-arm64 y --self-contained:

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

    Importante

    Si usa una versión de 32 bits del sistema operativo, tiene que usar el entorno de ejecución linux-arm.

  3. Con un cliente SFTP como scp, copie los archivos de la ubicación de publicación del equipo de desarrollo en una nueva carpeta del equipo SBC.

    Por ejemplo, para usar el comando scp para copiar archivos del equipo de desarrollo al equipo SBC, abra un símbolo del sistema y ejecute lo siguiente:

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

    Donde:

    • La opción -r indica a scp que copie los archivos de forma recursiva.
    • /publish-location/ es la carpeta en la que ha publicado en el paso anterior.
    • pi@raspberypi es el usuario y los nombres de host con el formato <username>@<hostname>.
    • /home/pi/deployment-location/ es la nueva carpeta en el equipo SBC.

    Sugerencia

    Las versiones recientes de Windows tienen OpenSSH, que incluye scp preinstalado.

  4. Desde un símbolo del sistema de Bash del dispositivo (local o SSH), ejecute la aplicación. Para ello, establezca el directorio actual en la ubicación de implementación y complete los pasos siguientes:

    1. Conceda el permiso execute al ejecutable (donde HelloWorld es el nombre del archivo ejecutable).

      chmod +x HelloWorld
      
    2. Ejecute el archivo ejecutable.

      ./HelloWorld