Поделиться через


Развертывание приложений .NET на компьютерах с одной платой ARM

Развертывание приложений .NET на одноплатформенных компьютерах идентично любой другой платформе. Приложение может выполняться в режиме развертывания как автономного, так и зависящего от платформы. Существуют преимущества каждой стратегии. Дополнительные сведения см. в обзоре публикации приложений .NET.

Развертывание приложения, зависяющего от платформы

Анимированный GIF-файл, показывающий схему развертывания, зависящей от платформы. Пакет SDK создает сборки, для которых требуется среда выполнения .NET на целевом устройстве.

Чтобы развернуть приложение в качестве приложения, зависяющего от платформы, выполните следующие действия.

  1. Убедитесь, что SSH включен на устройстве. Для Raspberry Pi см. инструкции по настройке SSH-сервера в документации raspberry Pi.

  2. Установите .NET на устройстве с помощью скриптов dotnet-install. Выполните следующие действия из запроса Bash на устройстве (локальный или SSH):

    1. Выполните следующую команду, чтобы установить .NET:

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

      Замечание

      Эта команда устанавливает последнюю версию. Если требуется определенная версия, замените параметр --channel STS на --version <VERSION>, где <VERSION> - конкретная версия сборки, например 8.0.404. Для получения списка версий см. SDK для .NET для Visual Studio. Чтобы определить полный номер сборки, см. столбец "Пакет SDK для Visual Studio 2022".

    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. С помощью клиента SFTP, например scp, скопируйте файлы из папки публикации на компьютере разработчика в новую папку на 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. В командной строке Bash в Raspberry Pi (локальном или SSH) запустите приложение. Для этого задайте папку развертывания в качестве текущего каталога и выполните следующую команду (где HelloWorld.dll является точкой входа приложения):

    dotnet HelloWorld.dll
    

Развертывание автономного приложения

Анимированный GIF-файл, показывающий схему автономного развертывания. Пакет SDK создает сборки, упакованные в среду выполнения .NET. Следовательно, на целевом устройстве нет зависимостей.

Чтобы развернуть приложение как автономное приложение, выполните следующие действия.

  1. Убедитесь, что SSH включен на устройстве. Для Raspberry Pi см. инструкции по настройке SSH-сервера в документации raspberry Pi.

  2. Опубликуйте приложение на компьютере разработки следующим образом в зависимости от среды разработки.

    • При использовании Visual Studioразверните приложение в локальной папке. Перед публикацией выберите "Изменить " в сводке профиля публикации и перейдите на вкладку "Параметры ". Убедитесь, что для режима развертывания задано значение "Локальная среда выполнения", а целевая среда выполненияlinux-arm64.

    • При использовании .NET CLI используйте команду dotnet publish с аргументами --runtime linux-arm64 и --self-contained.

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

    Это важно

    Если вы используете 32-разрядную ОС, вам нужно нацелиться на среду linux-arm выполнения.

  3. С помощью клиента SFTP, такого как scp, скопируйте файлы из папки публикации на компьютере для разработки в новую папку на 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. В командной строке Bash на устройстве (локальном или SSH) запустите приложение. Для этого задайте текущий каталог в расположении развертывания и выполните следующие действия:

    1. Предоставьте исполняемому файлу разрешение на выполнение (где HelloWorld находится имя исполняемого файла).

      chmod +x HelloWorld
      
    2. Запустите исполняемый файл.

      ./HelloWorld