네이티브 이미지를 사용하여 .NET 데스크톱 앱 최적화

이진 파일을 미리 컴파일하여 .NET Framework 애플리케이션의 시작 시간을 향상할 수 있습니다. Microsoft Store를 통해 패키징하고 배포하는 대규모 애플리케이션에서 이 기술을 사용할 수 있습니다. 경우에 따라 20%의 성능 향상이 관찰되기도 했습니다. 기술 개요에서 이 기술에 대해 자세히 알아볼 수 있습니다.

네이티브 이미지 컴파일러가 NuGet 패키지로 출시되었습니다. .NET Framework 버전 4.6.2 이상 버전을 대상으로 하는 모든 .NET Framework 애플리케이션에 이 패키지를 적용할 수 있습니다. 이 패키지는 애플리케이션에서 사용하는 모든 이진 파일에 기본 페이로드를 포함하는 빌드 후 단계를 추가합니다. 이렇게 최적화된 페이로드는 애플리케이션에서 .NET 4.7.2 이상을 실행할 때 로드되지만, 이전 버전은 계속해서 MSIL 코드를 로드합니다.

.NET Framework 4.7.2Windows 10 2018년 4월 업데이트에 포함되어 있습니다. Windows 7 이상 및 Windows Server 2008 R2 이상을 실행하는 PC에 이 버전의 .NET Framework를 설치할 수도 있습니다.

Important

Windows 애플리케이션 패키징 프로젝트를 통해 패키징된 애플리케이션의 네이티브 이미지를 생성하려면 프로젝트의 대상 플랫폼 최소 버전을 Windows 1주년 업데이트로 설정해야 합니다.

네이티브 이미지를 생성하는 방법

다음 지침에 따라 프로젝트를 구성합니다.

  1. 대상 프레임워크를 4.6.2 이상으로 구성

  2. 대상 플랫폼을 x86 또는 x64로 구성

  3. NuGet 패키지를 추가합니다.

  4. 릴리스 빌드를 만듭니다.

대상 프레임워크를 4.6.2 이상으로 구성

.NET Framework 4.6.2를 대상으로 하도록 프로젝트를 구성하려면 .NET Framework 4.6.2 이상 개발 도구가 필요합니다. 이러한 도구는 Visual Studio 설치 관리자를 통해 .NET 데스크톱 개발 워크로드에서 선택적 구성 요소로 사용할 수 있습니다.

Install .NET 4.6.2 development tools

또는 https://www.microsoft.com/net/download/visual-studio-sdks에서 .NET 개발자 팩을 받을 수 있습니다.

대상 플랫폼을 x86 또는 x64로 구성

네이티브 이미지 컴파일러는 지정된 플랫폼에 대한 코드를 최적화합니다. 네이티브 이미지 컴파일러를 사용하려면 x86 또는 x64처럼 한 특정 플랫폼을 대상으로 하도록 애플리케이션을 구성해야 합니다.

솔루션에 여러 프로젝트가 있는 경우 진입점 프로젝트(대부분 실행 파일을 생성하는 프로젝트)만 x86 또는 x64로 컴파일해야 합니다. 주 프로젝트에서 참조되는 추가 이진 파일은 AnyCPU로 컴파일된 경우에도 주 프로젝트에 지정된 아키텍처를 사용하여 처리됩니다.

프로젝트를 구성하는 방법은 다음과 같습니다.

  1. 솔루션을 마우스 오른쪽 단추로 클릭한 다음, 구성 관리자를 선택합니다.

  2. 실행 파일을 생성하는 프로젝트 이름 옆에 있는 플랫폼 드롭다운 메뉴에서 <새로 만들기 ..>를 선택합니다.

  3. 새 프로젝트 플랫폼 대화 상자에서 드롭다운 목록의 설정 복사모든 CPU로 설정되었는지 확인합니다.

Configure x86

x64 이진 파일을 생성하려면 Release/x64에 대해 이 단계를 반복합니다.

Important

네이티브 이미지 컴파일러에서는 모든 CPU 구성이 지원되지 않습니다.

NuGet 패키지 추가

네이티브 이미지 컴파일러는 실행 파일을 생성하는 Visual Studio 프로젝트에 추가해야 하는 NuGet 패키지로 제공됩니다. 일반적으로 Windows Forms 또는 WPF 프로젝트입니다. 이렇게 하려면 이 PowerShell 명령을 사용합니다.

PM> Install-Package Microsoft.DotNet.Framework.NativeImageCompiler -Version 1.0.0

릴리스 빌드 만들기

NuGet 패키지는 릴리스 빌드에 대한 추가 도구를 실행하도록 프로젝트를 구성합니다. 이 도구는 네이티브 코드를 동일한 이진 파일에 추가합니다. 이 도구가 이진 파일을 처리했는지 확인하려면 빌드 출력을 검토하여 다음과 같은 메시지가 포함되어 있는지 확인하면 됩니다.

Native image obj\x86\Release\\R2R\DesktopApp1.exe generated successfully.

프로젝트 파일에서 NgenR2R 속성을 true로 설정하여 비-릴리스 빌드에서 네이티브 이미지 컴파일을 트리거할 수 있습니다.

FAQ

17. 새 이진 파일은 .NET Framework 4.7.2가 없는 컴퓨터에서 작동하나요?

A. 최적화된 이진 파일은 .NET Framework 4.7.2를 실행할 때 향상된 기능을 활용합니다. 이전 .NET Framework 버전을 실행하는 클라이언트는 이진 파일에서 최적화되지 않은 MSIL 코드를 로드합니다.

17. 피드백을 제공하거나 문제를 보고하려면 어떻게 해야 하나요?

A. Visual Studio에서 피드백 도구를 사용하여 문제를 보고합니다. 추가 정보.

17. 기존 이진 파일에 네이티브 이미지를 추가하는 경우 어떤 영향이 있나요?

A. 최적화된 이진 파일은 관리 코드와 네이티브 코드를 포함하고 있으므로 최종 파일이 더 커집니다.

17. 이 기술을 사용하여 이진 파일을 릴리스할 수 있나요?

A. 이 버전에는 현재 사용할 수 있는 Go Live 라이선스가 포함되어 있습니다.