Share via


ARM 단일 보드 컴퓨터에 .NET 앱 배포

단일 보드 컴퓨터에 .NET 앱을 배포하는 것은 다른 플랫폼의 배포와 동일합니다. 앱은 ‘자체 포함’ 또는 ‘프레임워크 종속’ 배포 모드로 실행할 수 있습니다. 각 메서드에 대한 이점이 있습니다. 자세한 내용은 .NET 애플리케이션 게시 개요를 참조하세요.

프레임워크 종속 앱 배포

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

앱을 프레임워크 종속 앱으로 배포하려면 다음 단계를 완료합니다.

  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>은 특정 빌드 버전입니다.

    2. 경로 확인을 간소화하려면 DOTNET_ROOT 환경 변수를 추가하고 다음 명령을 사용하여 $PATH.dotnet 디렉터리를 추가합니다.

      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@raspberypi<username>@<hostname> 형식의 사용자 및 호스트 이름입니다.
    • /home/pi/deployment-location/은 SBC의 새 폴더입니다.

    최신 버전의 Windows에는 scp가 포함된 OpenSSH가 미리 설치되어 있습니다.

  5. Raspberry Pi(로컬 또는 SSH)의 Bash 프롬프트에서 앱을 실행합니다. 이렇게 하려면 배포 폴더를 현재 디렉터리로 설정하고 다음 명령을 실행합니다. 여기서 HelloWorld.dll은 앱의 진입점입니다.

    dotnet HelloWorld.dll
    

자체 포함 앱 배포

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.

앱을 자체 포함 앱으로 배포하려면 다음 단계를 완료합니다.

  1. 디바이스에서 SSH를 사용할 수 있는지 확인합니다. Raspberry Pi의 경우 Raspberry Pi 설명서의 SSH 서버 설정을 참조하세요.

  2. 개발 환경에 따라 다음과 같이 개발 컴퓨터에 앱을 게시합니다.

    • Visual Studio를 사용하는 경우 로컬 폴더에 앱을 배포합니다. 게시하기 전에 게시 프로필 요약에서 편집을 선택하고 설정 탭을 선택합니다. 배포 모드자체 포함으로 설정되고 대상 런타임linux-arm64로 설정되어 있는지 확인합니다.

    • .NET CLI를 사용하는 경우 dotnet publish 명령을 --runtime linux-arm64--self-contained 인수와 함께 사용합니다.

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

    Important

    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@raspberypi<username>@<hostname> 형식의 사용자 및 호스트 이름입니다.
    • /home/pi/deployment-location/은 SBC의 새 폴더입니다.

    최신 버전의 Windows에는 scp가 포함된 OpenSSH가 미리 설치되어 있습니다.

  4. 디바이스(로컬 또는 SSH)의 Bash 프롬프트에서 앱을 실행합니다. 이렇게 하려면 현재 디렉터리를 배포 위치로 설정하고 다음 단계를 완료합니다.

    1. 실행 파일 ‘실행’ 권한을 제공합니다. 여기서 HelloWorld는 실행 파일 이름입니다.

      chmod +x HelloWorld
      
    2. 실행 파일을 실행합니다.

      ./HelloWorld