다음을 통해 공유


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 LTS
      

      비고

      이 명령은 최신 LTS 버전을 설치합니다. 특정 버전이 필요한 경우 매개 변수를 특정 빌드 버전(예: <a0/>)으로 바꿉다. 버전 목록은 Visual Studio용 .NET SDKs를 참조하세요. 전체 빌드 번호를 확인하려면 Visual Studio 2026 SDK 열을 참조하세요.

    2. 경로 확인을 간소화하려면 환경 변수를 DOTNET_ROOT 추가하고 다음 명령을 사용하여 $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. 같은 scpSFTP 클라이언트를 사용하여 개발 컴퓨터의 게시 위치에서 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 최신 버전에는 scp 포함된 OpenSSH가 미리 설치되어 있습니다.

  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 --runtime linux-arm64 --self-contained
      

    중요합니다

    32비트 OS를 사용하는 경우 런타임을 linux-arm 대상으로 지정해야 합니다.

  3. 같은 scpSFTP 클라이언트를 사용하여 개발 컴퓨터의 게시 위치에서 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 최신 버전에는 scp 포함된 OpenSSH가 미리 설치되어 있습니다.

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

    1. 실행 파일 이름 인 실행 파일의 실행 HelloWorld 권한을 부여합니다.

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

      ./HelloWorld