다음을 통해 공유


XAML 컴파일

.NET 다중 플랫폼 앱 UI(.NET MAUI) XAML은 XAMLC(XAML 컴파일러)를 사용하여 IL(중간 언어)로 직접 컴파일됩니다. XAML 컴파일은 다음과 같은 다양한 이점을 제공합니다.

  • XAML의 컴파일 시간 검사 수행하여 오류를 알립니다.
  • XAML 요소의 일부 로드 및 인스턴스화 시간을 제거합니다.
  • 더 이상 .xaml 파일을 포함하지 않아 최종 어셈블리의 파일 크기를 줄이는 데 도움이 됩니다.

XAML 컴파일은 기본적으로 .NET MAUI 앱에서 사용하도록 설정됩니다. 디버그 구성을 사용하여 빌드된 앱의 경우 XAML 컴파일은 XAML의 컴파일 시간 유효성 검사를 제공하지만 어셈블리에서 XAML을 IL로 변환하지는 않습니다. 대신 XAML 파일은 앱 패키지에 포함된 리소스로 포함되며 런타임에 평가됩니다. 릴리스 구성을 사용하여 빌드된 앱의 경우 XAML 컴파일은 XAML의 컴파일 시간 유효성 검사를 제공하고 어셈블리에 기록된 XAML을 IL로 변환합니다. 그러나 클래스를 사용하는 두 구성에서 XAML 컴파일 동작을 재정의 XamlCompilationAttribute 할 수 있습니다.

Important

컴파일된 바인딩을 사용하도록 설정하여 .NET MAUI 애플리케이션에서 데이터 바인딩 성능을 향상시킬 수 있습니다. 자세한 내용은 컴파일된 바인딩을 참조하세요.

XAML 컴파일 사용 안 함

XAML 컴파일은 다음으로 XamlCompilationAttribute전달 XamlCompilationOptions.Skip 하여 사용하지 않도록 설정할 수 있습니다.

[assembly: XamlCompilation(XamlCompilationOptions.Skip)]

이 예제에서는 컴파일 시간이 아닌 런타임에 XAML 오류가 보고되므로 어셈블리 내에서 XAML 컴파일을 사용할 수 없습니다.

형식 수준에서 XAML 컴파일을 사용하지 않도록 설정할 수도 있습니다.

[XamlCompilation (XamlCompilationOptions.Skip)]
public partial class MyPage : ContentPage
{
    ...
}

이 예제에서는 클래스에 대해서만 XAML 컴파일을 사용할 수 MyPage 없습니다.

Warning

XAML은 런타임에 구문 분석되고 해석되므로 XAML 컴파일을 사용하지 않도록 설정하면 앱 성능이 저하됩니다.

XAML 컴파일 사용

.NET MAUI 앱에서 XAML 컴파일이 기본적으로 사용되므로 문을 XamlCompilation(XamlCompilationOptions.Skip) 제거하면 XAML 컴파일이 사용하도록 설정됩니다.

또는 다음을 전달 XamlCompilationOptions.Compile XamlCompilationAttribute하여 XAML 컴파일을 강제로 사용하도록 설정할 수 있습니다.

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

이 예제에서는 어셈블리에 포함된 모든 XAML에 대해 XAML 컴파일을 사용하도록 설정되며, XAML 오류는 런타임이 아닌 컴파일 시간에 보고됩니다.

형식 수준에서 XAML 컴파일을 사용하도록 설정할 수도 있습니다.

[XamlCompilation (XamlCompilationOptions.Compile)]
public partial class MyPage : ContentPage
{
    ...
}

이 예제에서 XAML 컴파일은 클래스에 MyPage 대해서만 사용하도록 설정됩니다.