Windows 앱 SDK에 대한 안정적인 채널 릴리스 정보

안정적인 채널은 프로덕션 환경의 앱에서 사용할 수 있도록 지원되는 Windows 앱 SDK의 릴리스를 제공합니다. Windows 앱 SDK의 안정적인 릴리스를 사용하는 앱을 Microsoft Store에 게시할 수도 있습니다.

현재 안정적인 채널의 다음 릴리스가 제공됩니다.

기존 앱을 이전 버전의 Windows 앱 SDK에서 최신 버전으로 업그레이드하려면 기존 프로젝트를 Windows 앱 SDK의 최신 릴리스로 업데이트를 참조하세요.

Windows 앱 SDK 다운로드

참고 항목

WINDOWS 앱 VSIX(Visual Studio 확장)는 더 이상 별도의 다운로드로 배포되지 않습니다. Visual Studio 내의 Visual Studio Marketplace에서 사용할 수 있습니다.

버전 1.5

버전 1.5.1(1.5.240311000)

1.5 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • "map.html"을 복사할 수 없어 자체 포함된 앱이 빌드되지 못할 수 있는 문제를 해결했습니다.
  • 유효한 토큰을 거부하여 초기화하지 못하는 문제를 해결 MapControl 했습니다. 자세한 내용은 GitHub #9324를 참조하세요.
  • 파란색 배경으로 로드되는 문제를 해결 MapControl 했습니다. 자세한 내용은 GitHub #9377을 참조하세요.
  • 한 번의 클릭으로 펼침 단추를 NavigationViewItem 클릭해도 제대로 확장되거나 축소되지 않는 문제가 해결되었습니다. 이로 인해 모드에서 펼침 단추를 클릭할 때 메뉴가 공백으로 표시되었습니다 PaneDisplayMode="Top" . 자세한 내용은 GitHub #9423#9426을 참조하세요.
  • 터치 또는 펜으로 NavigationViewItem 탭하면 항목이 향후 입력에 응답하지 않는 문제가 해결되었습니다. 자세한 내용은 GitHub #9429를 참조하세요.
  • 영역에서 항목을 클릭할 때 충돌이 해결되었습니다 NavigationView.PaneFooter . 자세한 내용은 GitHub #9396을 참조하세요.
  • 메뉴의 아이콘이 때때로 잘못된 위치에 표시되는 문제를 해결했습니다. 자세한 내용은 GitHub #9409를 참조하세요.
  • 창에서 뒤로 전환할 때까지 아크릴이 메뉴에 표시되지 않는 문제를 해결했습니다. 자세한 내용은 GitHub #9406을 참조하세요.
  • 초기화 중에 TextBox/RichEditBox 발생할 수 있는 크래시가 수정되었습니다. 자세한 내용은 GitHub #9216을 참조하세요.
  • 소멸에 NavigationView 걸리고 잡힌 몇 가지 시끄러운 예외를 수정했습니다.
  • 잘못된 PointerCaptureLost 메시지 발생으로 인해 "확대/축소" 제스처가 팬 또는 탭으로 표시되는 문제가 해결되었습니다.

버전 1.5

다음 섹션에서는 버전 1.5의 새로운 기능과 업데이트된 기능 및 알려진 문제에 대해 설명합니다.

기존 Windows 앱 SDK 1.4 앱에서 Nuget 패키지를 1.5.24027000으로 업데이트할 수 있습니다(NuGet 패키지 관리자 사용하여 Visual Studio에서 패키지 설치 및 관리 섹션 참조).

업데이트된 런타임 및 MSIX는 Windows 앱 SDK 대한 다운로드를 참조하세요.

XAML Islands 런타임 및 종료 업데이트

스레드의 마지막 XAML 창이 닫힌 경우 XAML Islands 기반 앱의 경우 WinAppSDK 1.4와 WinAppSDK 1.5 간에 동작 차이가 있습니다.

  • WinAppSDK 1.4에서 XAML 런타임은 스레드의 마지막 XAML 창이 닫혀 있을 때 항상 스레드의 이벤트 루프를 종료합니다.
  • WinAppSDK 1.5에서:
    • 앱이 WinUI Desktop 앱인 경우 기본 동작은 WinAppSDK 1.4와 동일합니다.
    • DesktopWindowXamlSource("XAML Islands") API에 XAML을 사용하는 경우 기본 동작은 이제 XAML이 스레드의 이벤트 루프를 자동으로 종료하지 않는 것입니다.
    • 두 모드 모두에서 속성을 설정하여 이 동작을 Application.DispatcherShutdownMode 변경할 수 있습니다.

자세한 내용은 사용 가능한 경우 속성에 Application.DispatcherShutdownMode 대한 설명서를 참조하세요. 그러면 GitHub 제안 #8492가 완료됩니다.

XAML 런타임의 수명 동안 XAML Islands 기반 앱의 경우 WinAppSDK 1.4와 WinAppSDK 1.5 사이에는 동작 차이가 있습니다.

  • WinAppSDK 1.4에서 지정된 스레드의 모든 WindowsXamlManager 개체와 DesktopWindowXamlSource 개체를 닫거나 종료하거나 DispatcherQueue 해당 스레드에서 실행이 종료되면 XAML 런타임이 스레드에서 종료됩니다(이 경우 XAML 런타임은 단계 중에 DispatcherQueue.FrameworkShutdownStarting 종료됨).
  • WinAppSDK 1.5에서 XAML 런타임은 해당 스레드에서 실행되는 DispatcherQueue가 종료될 때만 스레드에서 종료됩니다(Xaml 런타임은 단계 중에 DispatcherQueue.FrameworkShutdownStarting 항상 종료됨).

자세한 내용은 사용 가능한 경우 클래스에 WindowsXamlManager 대한 설명서를 참조하세요.

다음과 같은 동작 차이가 있습니다.WindowsXamlManager.InitializeForCurrentThread()

  • WinAppSDK 1.4 WindowsXamlManager.InitializeForCurrentThread() 에서 각 호출이 있는 개체의 고유한 인스턴스를 WindowsXamlManager 반환합니다.
  • WinAppSDK 1.5 WindowsXamlManager.InitializeForCurrentThread() 에서 스레드에 이미 있는 경우 기존 인스턴스를 반환합니다. Close/Dispose() 이제 무시됩니다.

WinUI 지도 컨트롤

이제 WinUI Maps 컨트롤을 사용할 수 있습니다. 이 컨트롤은 WebView2 및 Azure 지도 의해 구동되며 다음과 같은 기능을 제공합니다.

  • 지도 단추 또는 터치를 사용하여 이동 및 확대/축소
  • 지도의 스타일을 위성, 지형 또는 거리 보기로 변경합니다.
  • 개발자가 사용자 지정할 수 있는 아이콘이 있는 상호 작용 가능한 핀을 맵에 프로그래밍 방식으로 추가합니다.
  • 맵이 초기 로드의 중심이 되는 위치에 대한 개발자 사용자 지정
  • 이동, 확대/축소 및 지도 스타일에 대한 단추 숨기기 또는 표시를 통해 개발자를 제어합니다.

WinUI 3 Maps Control

참고 항목

컨트롤을 Maps 사용하려면 Azure 지도 키가 필요합니다. 키를 만들려면 웹앱을 만들기 위한 Azure 지도 설명서 페이지를 참조하세요.

이 컨트롤은 Maps 완전히 새로운 기능이며 향후 방향을 평가해주시기 위해 여러분의 의견을 환영합니다!

새 SelectorBar 컨트롤

1.5에서는 사용자가 여러 데이터 보기 간에 전환할 수 있도록 하는 새로운 SelectorBar 컨트롤을 추가했습니다. 이 컨트롤은 이전에 1.5 로드맵에서 "SegmentedControl"로 알려졌습니다.

WinUI 3 SelectorBar Control

CommandBarFlyout 기본 명령의 레이블

속성이 CommandBarFlyout 설정된 경우 Label 기본 명령 영역의 항목에 대한 텍스트 레이블을 표시하도록 시각적 개체가 업데이트되었습니다 AppBarButton. 이전에는 영역의 기본 명령에서 CommandBarFlyout 아이콘만 표시했지만 이제는 유용성을 향상시키기 위해 아이콘과 레이블을 모두 표시할 수 있습니다.

WinUI 3 CommandBarFlyout Labels

사용자 지정 환경/옵션에 대한 WebView2 지원

이제 WinUI WebView2 컨트롤은 사용자 지정 CoreWebView2EnvironmentCoreWebView2ControllerOptions및 기본 개체를 사용자 지정하는 CoreWebView2 기능을 노출합니다. 이렇게 하면 앱 작성자가 WebView2Runtime을 로드할 대체 경로를 지정하거나, 다른 UserDataFolder를 사용하도록 선택하거나, IsPrivateModeEnabled 및 ScriptLocale같은 옵션을 설정할 수 있습니다.

.NET 8에 대한 지원

최근 1.4 서비스 릴리스에서 .NET 8에 대한 지원을 추가했지만 플랫폼별 RID 사용에 대한 경고는 계속 유지되었습니다. 1.5에서는 경고가 더 이상 존재하지 않도록 작업을 완료했습니다.

향상된 디버깅 및 원본 가용성

이제 microsoft-ui-xaml 리포지토리의 코드에 대한 Github 원본 서버 정보를 공용 기호에 삽입하여 디버거가 소스 코드를 자동으로 다운로드할 수 있도록 합니다. 또한 디버깅 환경을 개선하기 위해 전체 WinAppSDK에서 기호를 수정하고 개선했습니다.

레이아웃 주기를 디버깅하기 위한 향상된 기능

WinUI 앱에서 레이아웃 주기를 디버깅하는 것은 어려울 수 있으므로 이제 1.5 DebugSettings 에서 개체는 앱에서 레이아웃 주기를 더 쉽게 디버그하고 수정할 수 있도록 레이아웃 프로세스에 대해 향상된 로깅 및 중단점을 사용하도록 설정하는 옵션을 노출합니다.

WinAppSDK의 다른 새로운 기능

  • PublishSingleFile 배포 모델에 대한 지원이 추가되었습니다. PublishSingleFile에 대한 자세한 내용은 단일 파일 배포 설명서를 참조 하세요.
  • 화면 읽기 프로그램 지원, 텍스트 크기 조정 지원 및 기타 접근성 기능에 향상된 기능이 추가되었습니다.
  • 우선 순위가 지정된 GitHub 버그 백로그에 따라 다양한 안정성과 성능이 향상되었습니다.

별도로 릴리스되는 새로운 기능

C# 및 C++용 WinAppSDK Visual Studio 템플릿의 새 버전은 Visual Studio Marketplace를 통해 릴리스되고 있으며 1.5 릴리스 후 몇 주 후에 표시됩니다. 새 버전을 사용하면 이제 템플릿이 WinAppSDK 릴리스와 독립적으로 릴리스되어 고객에게 업데이트를 받는 데 훨씬 더 많은 유연성을 제공할 수 있습니다.

이전에 계획된 기타 기능

1.5에서는 로드맵에서 발표한 다음 기능에 대해 진전을 이루었지만 완료하지는 못했습니다. 1.6 시간 범위로 계속됩니다.

  • 탭 창
  • WebView2에 대한 끌어서 놓기 지원
  • 테이블 뷰 및 잉크 컨트롤에 대한 조사

동적 조명은 당분간 로드맵에서 제거되었습니다.

알려진 문제

  • .xaml 파일과 같은 리소스가 포함된 라이브러리를 사용하는 경우 런타임에 해당 리소스를 찾을 수 없음을 나타내는 오류 메시지가 표시될 수 있습니다. 이 경우 프로젝트 파일에 삽입 <ShouldComputeInputPris>true</ShouldComputeInputPris> 하여 해당 리소스가 포함되도록 해야 할 수 있습니다.
  • 한 번의 클릭으로 NavigationViewItem 더 이상 펼침 단추를 클릭하면 더 이상 제대로 확장되거나 축소되지 않습니다. 두 번 클릭해도 계속 작동합니다 NavigationViewItem.

버그 수정

  • 축소된 StackPanel 항목에 간격을 적용하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #916을 참조하세요.
  • 다른 앱 창을 닫은 후 스크롤 컨트롤이 더 이상 작동하지 않는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #9292#9355를 참조하세요.
  • 첫 번째 프레임이 렌더링되기 전에 true설정할 DebugSettings.EnableFrameRateCounter 때 충돌이 해결되었습니다. 자세한 내용은 GitHub 문제 #2835를 참조하세요.
  • 일부 헤더에 필요한 종속성이 포함되지 않은 C++에 대한 잠재적인 컴파일 오류가 수정되었습니다. 순서 변경 #include 은 앱이 2023 이전 버전의 C++/WinRT를 사용하는 경우 컴파일 오류를 IInspectable 발생시키는 등 일부 앱에 영향을 줄 수 있습니다. 자세한 내용은 GitHub 문제 #9014를 참조하세요.
  • 바인딩이 ElementName 내부에서 작동하지 않는 문제를 해결했습니다 ItemsRepeaterDataTemplate. 자세한 내용은 GitHub 문제 #560을 참조하세요.
  • 앱 내 도구 모음을 사용하도록 설정된 Visual Studio에서 앱을 실행할 때 발생하는 충돌을 해결했습니다. Visual Studio 17.8 미리 보기 2 이상은 수정 사항을 완전히 가져와야 합니다. 자세한 내용은 GitHub 문제 #8806을 참조하세요.
  • 빠르게 스크롤할 때 때때로 충돌이 발생할 수 있는 AnnotatedScrollbar 문제를 해결했습니다.
  • 메뉴 텍스트가 잘리는 문제가 해결되었습니다.
  • 교육 팁이 적절한 초점을 받지 못하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #3257을 참조하세요.
  • 시작 시 Collapsed로 설정할 TailVisibilityTeachingTip 때 애플리케이션이 충돌하는 문제를 해결했습니다 . 자세한 내용은 GitHub 문제 #8731을 참조하세요.
  • 라이브러리를 사용할 때 PRI 파일이 처리되는 방식과 관련된 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8857을 참조하세요.
  • 프로젝션 DLL이 생성되지 않은 1.5-experimental2 릴리스의 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #4152를 참조하세요.
  • 텍스트 서식 팝업의 RichEditBox 줄임표 단추가 작업 목록을 제대로 표시하지 않는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #9140을 참조하세요.
  • 키보드 가속기를 제대로 처리하지 못하는 문제를 해결 ListView 했습니다. 자세한 내용은 GitHub 문제 #8063을 참조하세요.
  • 창을 닫는 데 사용할 AccessKey 때의 액세스 위반 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8648을 참조하세요.
  • 창을 닫는 데 사용할 AccessKey 때 충돌이 해결되었습니다. 자세한 내용은 GitHub 문제 #9002를 참조하세요.
  • 내의 텍스트 맞춤에 MenuFlyoutItem 영향을 주는 문제를 해결했습니다 MenuBar. 자세한 내용은 GitHub 문제 #8755를 참조하세요.
  • 강조 표시된 텍스트가 다시 표시되지 않는 문제를 해결했습니다기본 마우스 오른쪽 단추를 클릭할 때 강조 표시됨. 자세한 내용은 GitHub 문제 #1801을 참조하세요.
  • 비활성 창이 닫혔을 때 앱이 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8913을 참조하세요.
  • 마우스 가운데 단추를 사용하여 스크롤하고 그 직후 왼쪽 단추를 클릭할 때 애플리케이션을 중단시킬 수 있는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #9233을 참조하세요.
  • 사용자 지정 NavigationViewItem을 사용할 때 시작 시 앱이 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8814를 참조하세요.
  • NavigationView 줄임표 단추가 오류를 잘못 생성하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8380을 참조하세요.
  • 다중 창 앱에서 제대로 렌더링되지 않는 문제를 해결 SystemBackdrop 했습니다. 자세한 내용은 GitHub 문제 #8423을 참조하세요.
  • 의 시작 부분에 삽입할 때 중복 문제가 해결되었습니다 ObservableCollection. 자세한 내용은 GitHub 문제 #8370을 참조하세요.

버전 1.4

버전 1.4.5(1.4.240211001)

1.4 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • 마우스 휠을 사용하여 스크롤하는 동안 마우스 단추를 클릭할 때 응용 프로그램을 중단시킬 수 있는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #9233을 참조하세요.
  • NuGet 패키지 체인을 참조할 때 중복 자산과 관련된 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8857을 참조하세요.
  • 메모리 누수, 줄임표 메뉴가 비어 있을 때의 크래시, 창 내에서 줄임표 메뉴가 잘못 제한되는 등의 여러 BreadcrumbBar 문제를 해결했습니다.
  • 그래픽 리소스를 해제할 때 종료 시 발생할 수 있는 충돌을 해결했습니다.

버전 1.4.4(1.4.231219000)

1.4 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • WinUI 3 진단 보안 문제가 해결되었습니다.
  • 터치를 통해 활성화할 때 암호 상자에 화상 키보드가 표시되지 않는 입력 문제가 해결되었습니다. 자세한 내용은 GitHub 문제 #8946을 참조하세요.
  • 파일 크기가 Microsoft.UI.Xaml.Controls.dll 예기치 않게 증가하는 문제를 해결했습니다.
  • 포커스를 CommandBarFlyout 설정할 때 충돌이 발생할 수 있는 문제를 해결했습니다.
  • .NET 8 RID 관련 자산 처리에 대한 Windows 앱 SDK 지원이 업데이트되었습니다.
  • 일부 스왑 체인이 잘못 배치되거나 늘어나게 하는 문제를 해결했습니다.

버전 1.4.3(1.4.231115000)

1.4 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • 짧은 시간 동안 배경 없이 메뉴가 나타날 수 있는 문제를 해결했습니다.
  • 특정 다중 모니터 시나리오에서 발생할 수 있는 충돌을 수정했습니다.
  • 상황에 맞는 메뉴가 화면 을 벗어나 표시할 수 있는 문제를 해결했습니다.
  • 창 스타일 및 최대화 동작 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8996을 참조하세요.
  • 다른 컨트롤에서 예기치 않게 포커스를 잡을 수 있는 아일랜드 문제를 해결했습니다.
  • 에서 탭 순서와 관련된 문제를 해결했습니다 NavigationView.
  • 제목 표시줄의 맨 위에 흰색 막대가 표시될 수 있는 렌더링 문제가 해결되었습니다. 자세한 내용은 GitHub 문제 #8947을 참조하세요.
  • 다양한 성능 수정.

버전 1.4.2(1.4.231008000)

1.4 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • 과도한 메모리 및 개체 할당으로 인한 explorer.exe 충돌 문제를 해결했습니다.
  • 뒤로 단추가 제대로 작동하지 않는 제목 표시줄 상호 작용 문제를 해결했습니다.
  • 원본 파일에 대한 경고가 여러 번 포함되는 문제를 해결했습니다.
  • 상황에 맞는 메뉴 성능에 영향을 주는 문제를 해결했습니다.
  • 대상 .exe 항상 WindowsApps 폴더의 패키지에 대해 동일한 위치를 가리키는 .lnk 바로 가기 문제가 해결되었습니다.
  • 특정 글꼴에서 Indic 텍스트의 적절한 렌더링에 영향을 주는 DWriteCore 문제가 해결되었습니다.
  • Tab/Shift + Tab을 사용하여 중첩된 선택한 항목에 대한 적절한 키보드 탐색을 방지하는 목록 보기의 문제를 해결했습니다.
  • ComboBox를 두 번째로 확장한 후 터치로 스크롤되는 ComboBox 항목을 중단하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8831을 참조하세요.
  • WinAppSDK 패키지에 일부 언어에 대한 WinUI의 지역화된 리소스가 포함되지 않은 문제가 해결되었습니다.
  • 파일 탐색기 XAML에서 사용자의 기본 설정 언어를 표시하는 방법 간의 불일치가 수정되었습니다.
  • 파일 탐색기 현재 탭 아래에 얇은 선이 표시되는 장인정신 문제가 해결되었습니다.
  • 일부 프레임워크 제공 키보드 가속기가 제대로 지역화되지 않은 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #2023을 참조하세요.
  • 탭할 때 반복적으로 스크롤되는 RepeatButton 컨트롤 문제를 해결했습니다.
  • 적절한 리소스 버전 정보를 갖도록 WinAppSDK 설치 관리자 .exe 수정했습니다.

버전 1.4.1(1.4.230913002)

1.4 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • 첫 번째 프레임까지의 시간을 개선하기 위한 성능 문제가 해결되었습니다.
  • 메뉴가 적용되지 RequestedTheme않는 문제가 해결되었습니다. 예를 들어 이 문제로 인해 흰색 배경에 흰색 텍스트가 표시되었을 수 있습니다. 자세한 내용은 GitHub 문제 #8756을 참조하세요.
  • 일부 메뉴에서 아크릴 배경이 완전히 투명해지는 문제를 해결했습니다.
  • XAML로 인해 Windows가 데스크톱 배경 화면을 불필요하게 다시 그리는 문제가 해결되었습니다.
  • 이제 화살표 키 외에도 TAB을 사용하여 머리글과 항목 간을 탐색할 수 있도록 하는 지원 TabNavigation = LocalTabNavigation = CycleListViewGridView및 지원 및 지원이 수정되었습니다.
  • 도구 설명을 해제할 때 몇 가지 시끄러운 예외가 수정되었습니다. 자세한 내용은 GitHub 문제 #8699를 참조하세요.

버전 1.4

다음 섹션에서는 버전 1.4의 새로운 기능과 업데이트된 기능 및 알려진 문제에 대해 설명합니다.

기존 Windows 앱 SDK 1.3 앱에서 Nuget 패키지를 1.4.230822000으로 업데이트할 수 있습니다(NuGet 패키지 관리자 사용하여 Visual Studio에서 패키지 설치 및 관리 섹션 참조).

업데이트된 런타임 및 MSIX는 Windows 앱 SDK 대한 다운로드를 참조하세요.

사용자 지정 제목 표시줄 + AppWindow 타이틀 표시줄 병합

WinUI 3 사용자 지정 제목 표시줄은 Windows 앱 SDK 1.4의 내부적으로 NonClientInputPointerSource API와 함께 AppWindow 타이틀 모음 구현을 사용합니다. 따라서 두 타이틀바 구현은 이제 동일한 기능 및 제한 사항으로 동일한 방식으로 동작합니다. 이는 지원되는 모든 경우에서 완전히 이전 버전과 호환됩니다. 사용자 지정 정의 제목 표시줄이 있는 모든 앱은 이전과 같이 작동합니다. 하지만 이제 사용자 지정 제목 표시줄을 접하는 WinUI 3 개발자가 이러한 새로운 기능을 활용하여 이를 이해하고 사용할 수 있습니다.

  • 개발자가 타이틀바 요소를 구체적으로 정의하지 않는 더 나은 기본 시나리오(WinUI 2에서 대체 제목 표시줄 대체)
  • 제목 표시줄의 고유 끌기 영역을 사용하여 여러 끌기 영역을 만들고 비 클라이언트 영역(제목 표시줄 영역)의 모든 부분에 클릭 가능한 컨트롤을 배치할 수 있습니다.
  • 앱의 아무 곳에나 배치하거나 전체 앱을 끌 수 있는 앱 전체 끌기 가능 지역
  • 리소스 기반 테마를 대체하는 더 나은 테마 지원
    • 끌기 영역은 투명하므로 매번 앱 테마를 따릅니다.
  • 추가 사용자 지정: 최소, 최대 및 닫기 단추 숨기기; 제목 표시줄에 시스템 아이콘을 배치합니다. 또는 다른 지역이 NCHITTEST 응답을 받는 캡션 단추 역할을 하게 합니다.
  • 대부분의 시나리오에서 상위 수준 WinUI 3 API를 사용하지만 하위 수준 제어를 위해 혼합된 AppWindow API를 사용하는 등 AppWindow 타이틀 모음 API를 혼합하고 일치시킬 수 있는 개발자의 자유도 증가

위젯 업데이트

위젯 공급자가 구현IWidgetProvider2IWidgetProviderAnalyticsIWidgetProviderErrors할 수 있도록 3개의 새 인터페이스가 추가되었습니다. IWidgetProvider2를 사용하면 공급자가 사용자가 호출한 사용자 지정 작업에 응답할 수 있습니다. 이는 자사 위젯에 사용할 수 있는 것과 동일합니다. 및 IWidgetProviderErrors 인터페이스는 IWidgetProviderAnalytics 공급자가 위젯에 대한 원격 분석을 수집하는 데 사용됩니다. 위젯에 대한 분석 및 실패 이벤트는 해당 위젯 공급자에게 전달됩니다. 및 WidgetAnalyticsInfoReportedArgsWidgetErrorInfoReportedArgs 클래스는 WidgetCustomizationRequestedArgs새 기능을 지원하기 위해 관련 정보를 전달하는 데 사용됩니다.

XAML Islands는 더 이상 실험적이 아닙니다.

XAML Islands 및 기본 ContentIslands 플랫폼은 더 이상 실험적이 아닙니다.

  • 현재 XAML Islands는 C++ 앱에서만 사용하도록 테스트됩니다. 이 릴리스에는 WPF 또는 WinForms에서 사용하기 위한 편리한 래퍼 요소가 포함되지 않습니다.
  • DesktopWindowXamlSource 및 관련 형식이 XAML Islands용 Microsoft.UI.Xaml.Hosting 네임스페이스에 추가되었습니다. XamlRoot.ContentIslandEnvironment 요소에 대한 기본 Island 정보에 액세스하는 데 도움이 되도록 가 추가되었습니다.
  • Microsoft.UI.Content 네임스페이스 및 Microsoft.UI.Input 네임스페이스에 XAML Islands에 대한 기본 지원 또는 XAML 없이 이 ContentIslands 기능을 사용하기 위한 많은 새로운 형식이 도입되었습니다.
  • Island 시나리오에 대한 Microsoft.UI.Input.DragDrop 네임스페이스에 새로운 DragDropManager (관련 형식 포함)이 추가되었습니다.

ItemsView

이 클래스와 해당 구체적인 ItemContainer 클래스라는 새 목록 컨트롤이 ItemsView 도입되었습니다. ItemContainer 는 원하는 콘텐츠를 쉽게 래핑하고 컬렉션 제어 시나리오에 사용할 ItemsView 수 있는 기본 제공 선택 상태 및 시각적 개체가 있는 경량 컨테이너입니다.

  • ItemsView 컨트롤에 데이터 컬렉션이 표시됩니다. ItemsView는 및 컨트롤과 비슷하 ListView 지만 , ItemContainerScrollViewItemCollectionTransitionProvider 구성 요소를 사용하여 ItemsRepeater빌드 GridView 됩니다. 사용자 지정 Layout 또는 ItemCollectionTransitionProvider 구현을 연결하는 고유한 기능을 제공합니다. 또 다른 주요 이점은 항목 선택을 유지하면서 즉석에서 레이아웃을 전환하는 기능입니다. 내부 ScrollView 컨트롤은 프로그래밍 방식으로 스크롤하는 동안 애니메이션을 제어하는 기능과 같은 컨트롤에서GridViewListView/ScrollViewer 사용할 수 없는 기능도 제공합니다.
    • ItemTransitionProvider 속성 및 새 ItemsView 컨트롤을 사용하면 해당 컨트롤의 전환 애니메이션을 제어할 개체를 지정할 ItemCollectionTransitionProviderItemsRepeater 있습니다. CreateDefaultItemTransitionProvider 또한 컨트롤에 Layout명시적으로 제공하지 않는 경우 레이아웃 개체가 대체 전환을 제공할 수 있도록 하는 메서드가 ItemsView 추가되었습니다.
    • 항목의 레이아웃 방향(있는 경우)이 원본 컬렉션의 인덱스 기반이 되는 위치에 대한 새 IndexBasedLayoutOrientation 속성 Layout 입니다. 기본값은 IndexBasedLayoutOrientation.None입니다. 사용자 지정 레이아웃은 새(보호된) SetIndexBasedLayoutOrientation 메서드를 호출하여 이 속성을 설정합니다.
    • VisibleRect 속성은 VirtualizingLayoutContext 연결된 뷰포트 내의 표시되는 뷰포트 사각형을 FrameworkElementLayout가져옵니다. 보호된 가상 VirtualizingLayoutContext.VisibleRectCore 메서드를 재정의하여 속성에서 VisibleRect 반환되는 값을 제공할 수 있습니다.
  • LinedFlowLayout 클래스는 일반적으로 컬렉션 컨트롤의 항목을 배치하는 ItemsView 데 사용됩니다. 그림 컬렉션을 표시하는 데 특히 유용합니다. 이렇게 하려면 왼쪽에서 오른쪽으로, 위쪽에서 아래쪽으로 높이가 같은 줄로 배치합니다. 그림이 가로 선을 채운 다음 다음 줄로 줄 바꿈합니다. 그림이 왼쪽 가장자리와 오른쪽 가장자리에서 잘려서 선에 맞을 수 있습니다. 또한 스트레칭 모드를 사용할 때 가로로 확장하고 위쪽 및 아래쪽 가장자리에서 잘라 선을 채울 수 있습니다.

WinAppSDK의 새로운 기능

  • Win32 WinRT 앱이 UWP의 접근성설정 클래스와 유사하게 시스템의 고대비 설정이 변경된 시기를 감지할 수 있도록 하는 새 ThemeSettings 클래스입니다. 자세한 내용은 GitHub의 테마설정 API 사양을 참조하세요.
  • AccessKeyManager.EnterDisplayMode 는 제공된 루트의 현재 포커스가 있는 요소에 대한 액세스 키를 표시하는 새로운 메서드입니다. 액세스 키는 그림판 Alt 키를 눌러 컨트롤에 해당하는 키를 표시하는 등 명령을 호출하는 키 팁을 표시할 때 "표시 모드"에 있습니다. 이 메서드를 사용하면 프로그래밍 방식으로 표시 모드를 입력할 수 있습니다.
  • Application.ResourceManagerRequested에서는 기본값 ResourceManager 이 작동하지 않는 경우 시나리오에 대한 리소스 URI를 확인하는 다른 IResourceManager 메커니즘을 제공합니다. 자세한 내용은 GitHub의 Application.ResourceManagerRequested API 사양 을 참조하세요.
  • WebView2 SDK 버전은 1661.34에서 1823.32업데이트되었습니다.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false 는 이제 지원되므로 팝업/플라이아웃이 부모 창의 범위를 벗어나 확장할 수 있습니다. SystemBackdrop 이러한 제한되지 않은 팝업에 아크릴이 있는 것을 지원하기 위해 이러한 형식에 속성이 추가되었습니다. 기본적으로 메뉴에는 아크릴이 있는 데 사용합니다.
  • Closed개체FrameworkClosedIsClosed/스레드를 종료하는 동안 처리를 개선하기 위해 가 추가 DesktopAcrylicControllerMicaController 되었습니다.
  • DesktopAcrylicController.Kind 이제 일부 표준 아크릴 모양 중에서 선택하도록 설정할 수 있습니다.
  • DispatcherQueue 에는 더 잘 구성된 종료를 용이하게 하고 아일랜드를 사용하는 앱이 표준 지원 이벤트 루프를 쉽게 실행할 수 있도록 몇 가지 새로운 이벤트 및 도우미가 있습니다.
  • InputNonClientPointerSource Microsoft.UI.Input 네임스페이스에서 사용자 지정 제목 표시줄 시나리오를 사용하여 비 클라이언트 영역 영역을 정의할 수 있습니다. 코드는 해당 지역에 대한 가리키기 및 클릭 이벤트와 같은 해당 이벤트에 등록할 수 있습니다.
  • AppWindow 에는 새 도우미를 가져와서 연결할 수 있는 도우미가 있습니다 DispatcherQueue.
  • TreeView.SelectionChanged 이벤트를 사용하면 사용자 또는 코드 숨김이 컨트롤에서 선택한 노드 집합을 변경할 때 개발자가 응답할 수 있습니다 TreeView .
  • ScrollView 컨트롤은 .에 대한 새로운 대안을 ScrollViewer제공합니다. 이 새 컨트롤은 동작 및 API에서 기존 ScrollViewer 컨트롤과 고도로 정렬되지만 애니메이션 기반 보기 변경과 같은 새로운 기능을 기반으로 InteractionTracker하며 전체 기능을 ItemsRepeater보장하도록 설계되었습니다. 더 유연한 ScrollViewer를 참조하세요 . 문제 #108 · 자세한 내용은 microsoft/microsoft-ui-xaml(github.com) 을 참조하세요. 을 비롯한 ScrollPresenter다양한 새 형식이 전체 ScrollView 모델의 일부입니다.
  • AnnotatedScrollBar 컨트롤은 항목의 큰 컬렉션을 탐색하는 쉬운 방법을 제공하여 일반 스크롤 막대의 기능을 확장합니다. 이는 표식 역할을 하는 레이블이 있는 클릭 가능한 레일을 통해 수행됩니다. 또한 클릭 가능한 레일을 마우스로 가리킬 때 도구 설명을 표시하여 스크롤 가능한 콘텐츠를 보다 세밀하게 이해할 수 있습니다.

알려진 문제

버그 수정

  • API를 호출하면 Microsoft.Windows.AppLifecycle.AppInstance.Restart("") 패키지되지 않은 앱이 충돌하는 문제가 해결되었습니다. 자세한 내용은 GitHub 문제 #2792를 참조하세요.
  • 1.4-experimental1에서 도입된 설치 관리자 충돌 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #3760을 참조하세요.
  • TextBlock에서 텍스트 취소선이 제대로 제거되지 않는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #1093을 참조하세요.
  • TabFocusNavigation이 "Once"로 설정된 패널에서 잘못된 Shift + Tab 탐색을 유발하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #1363을 참조하세요.
  • 명명된 {x:Bind} XAML 컨트롤의 속성으로 제대로 작동하지 않는 C++/WinRT의 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #2721을 참조하세요.
  • 설정 DebugSettings.EnableFrameRateCounter = true으로 인한 WinUI Desktop 앱의 런타임 AccessViolation 문제가 해결되었습니다. 자세한 내용은 GitHub 문제 #2835를 참조하세요.
  • 필요한 헤더를 XamlTypeInfo.g.cpp 포함하지 않는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #4907을 참조하세요.
  • 동시 멀티 터치 및 마우스 입력으로 인한 충돌 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7622를 참조하세요.
  • 마우스 위에 비활성 창의 스크롤을 사용하지 않도록 설정하는 시스템 설정이 적용될 때 활성 WinUI 3 앱 창이 스크롤되지 않는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8764를 참조하세요.
  • 서브클래스를 시도할 때 충돌이 해결되었습니다 MediaPlayerElement.
  • 에서 일부 크래시 및 메모리 누수 문제를 해결했습니다 TreeView.
  • 키보드를 사용하여 탐색할 때 발생할 수 있는 앱 중단 문제가 해결되었습니다 RadioButtons.
  • 키보드를 사용하여 .에서 탐색할 때 발생하는 충돌을 해결했습니다 PipsPager.
  • 설정 앱에서 "텍스트 크기" 접근성 설정을 사용하여 크기를 조정할 WebView2 콘텐츠를 수정했습니다.
  • 디스플레이가 꺼졌을 때 애니메이션이 실행 중일 때 발생할 수 있는 크래시가 수정되었습니다.
  • 첫 번째 레이아웃/렌더링에 10% 오버헤드를 추가하는 1.3에 도입된 성능 문제를 해결했습니다.

버전 1.3

버전 1.3.3(1.3.230724000)

이는 1.3 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

  • 대화 상자를 닫을 때 마우스가 작동을 중지하는 문제가 해결되었습니다.
  • 시스템에서 패키지 버전이 일치하지 않아 앱이 설치되지 않는 배포 문제가 해결되었습니다. 자세한 내용은 GitHub 문제 #3740을 참조하세요.
  • Windows 앱 SDK 1.3의 상황에 맞는 메뉴 위치에 영향을 주는 문제를 해결했습니다.
  • XAML이 너무 일찍 종료되어 앱이 닫혔을 때 일부 WinUI3 앱이 충돌하는 문제를 해결했습니다.
  • 글꼴 아이콘이 오른쪽에서 왼쪽 언어로 제대로 미러 않는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7661을 참조하세요.
  • 리소스가 잘못된 순서로 중단될 때 앱이 종료 시 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7924를 참조하세요.

버전 1.3.2(1.3.230602002)

이는 1.3 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

  • 보호된 커서를 설정할 때 충돌이 해결되었습니다.
  • 앱을 시작하는 동안 XamlMetadataProvider의 성능 문제가 해결되었습니다. 자세한 내용은 GitHub 문제 #8281을 참조하세요.
  • RichTextBlock의 하이퍼링크 및 터치 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #6513을 참조하세요.
  • WebView2에서 스크롤 및 터치 패드 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7772를 참조하세요.
  • Windows 앱 SDK 업데이트할 때 Visual Studio를 다시 시작해야 하는 문제가 해결되었습니다. 자세한 내용은 GitHub 문제 #3554를 참조하세요.
  • 디버거에서 실행할 때 종료 시 시끄러운 예외가 수정되었습니다.

버전 1.3.1(1.3.230502000)

이는 1.3 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

  • 콘텐츠가 null인 경우 SystemBackdrop을 설정할 때 앱이 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #8416을 참조하세요.
  • 1.3.0에 추가된 새로운 기능인 XAML에서 창 제목을 설정할 때 앱이 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #3689를 참조하세요.
  • 콘텐츠가 변경될 때 창이 잘못 포커스를 가져간 문제를 해결했습니다.
  • WinAppSDK 1.3 프로젝트 템플릿을 사용하여 C++ 프로젝트를 만드는 문제를 해결했습니다.
  • Visual Studio Marketplace에서 업데이트된 템플릿

버전 1.3

다음 섹션에서는 버전 1.3의 새로운 기능과 업데이트된 기능 및 알려진 문제에 대해 설명합니다.

기존 Windows 앱 SDK 1.2 앱에서 Nuget 패키지를 1.3.230331000으로 업데이트할 수 있습니다(NuGet 패키지 관리자 사용하여 Visual Studio에서 패키지 설치 및 관리 섹션 참조).

업데이트된 런타임 및 MSIX는 Windows 앱 SDK 대한 다운로드를 참조하세요.

XAML 배경 API

XAML 창에 기본 제공된 속성을 사용하면 이제 WinUI 3 앱에서 Mica 및 Background Acrylic 배경을 더 쉽게 사용할 수 있습니다. Xaml 배경 속성에 대한 자세한 내용은 시스템 배경Mica 배경 API 문서를 참조하세요.

public MainWindow()
{
    this.InitializeComponent();

    this.SystemBackdrop = new MicaBackdrop();
}

Window.AppWindow

여러 상용구 코드를 대체하면 이제 Window에서 AppWindowWindow.AppWindowAPI를 직접 사용할 수 있습니다.

WinAppSDK 전반의 새로운 기능

  • ApplicationModel.DynamicDependency: PackageDependency.PackageGraphRevisionId 사용되지 않는 MddGetGenerationId를 대체합니다.
  • 환경 관리자: EnvironmentManager.AreChangesTracked 애플리케이션에서 환경 관리자의 변경 내용을 추적할 수 있는지 여부를 알려 줍니다.
  • 새 이벤트인 디버그설정. 참조된 Static/ThemeResource 조회를 확인할 수 없는 경우 XamlResourceReferenceFailed가 발생합니다. 이 이벤트는 정적 및 ThemeResource 조회 실패를 디버그할 수 있도록 프레임워크가 해당 키를 검색한 위치를 자세히 나타내는 추적에 대한 액세스를 제공합니다. 자세한 내용은 GitHub의 추적 XAML 리소스 참조 조회 실패 API 사양을 참조하세요.

기타 업데이트

알려진 문제

xaml 컴파일러의 최근 변경으로 인해 1.3으로 업그레이드하는 기존 프로젝트에서 Visual Studio 내에서 다음과 같은 빌드 오류가 발생할 수 있습니다.

> C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.3.230331000**\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(537,17): error MSB4064: The "PrecompiledHeaderFile" parameter is not supported by the "CompileXaml" task loaded from assembly: Microsoft.UI.Xaml.Markup.Compiler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=de31ebe4ad15742b from the path: C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.2.230118.102**\tools\net472\Microsoft.UI.Xaml.Markup.Compiler.dll. Verify that the parameter exists on the task, the <UsingTask> points to the correct assembly, and it is a settable public instance property.

이는 Visual Studio가 1.2에서 캐시된 xaml 컴파일러 작업 dll을 사용하지만 위의 오류 텍스트에 표시된 것처럼 1.3의 호환되지 않는 MSBuild 논리로 인해 발생합니다. 해결 방법은 Visual Studio를 종료하고, 다시 시작하고, 솔루션을 다시 로드하는 것입니다.

버전 1.2

버전 1.2.5(1.2.230313.1)

1.2 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • 컴퍼지션 종료 중에 앱이 충돌하는 문제를 해결했습니다.
  • 화면이 꺼져 있는 경우에도 앱이 애니메이션을 계속 실행하는 문제를 해결했습니다.
  • 마우스 및 키보드 입력이 동시에 발생했을 때 WebView2에서 마우스 및 터치 입력이 실패하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #3266을 참조하세요.

버전 1.2.4(1.2.230217.4)

1.2 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • 자체 포함 앱이 UAC 설정 설정할 수 없는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #3376을 참조하세요.
  • 푸시 알림에서 부정확한 만료 시간을 PushNotificationChannel::ExpirationTime반환하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #3300을 참조하세요.
  • x:Bind 함수에 double을 매개 변수로 전달할 때 음수가 "유효하지 않음"으로 간주되는 문제를 해결했습니다.
  • WinUI VSIX를 업데이트하기 위한 몇 가지 수정 사항입니다. 이러한 업데이트에는 app.manifest에서 프로젝트 템플릿 dipAwareness 간소화, UWP 템플릿 제거, 지역화된 리소스 파일 업데이트, 스토어 제출 차단 해제에 전화 ID 추가, 저작권 알림 및 라이선스 제거 등이 포함되었습니다. 자세한 내용은 GitHub 문제 #5659, #3205, #3323, #3322, #3143을 참조하세요.

버전 1.2.3(1.2.230118.102)

1.2 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • 여러 창을 닫을 때 WinUI 3 앱이 충돌하는 문제를 해결했습니다.
  • ThreadPoolTimer 인터페이스에 대한 두 개 이상의 참조가 호출될 때 앱이 닫히는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7260#7239를 참조하세요.
  • 모든 단일 프로젝트 MSIX 앱이 완전 신뢰로 실행되는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7766을 참조하세요.

버전 1.2.2(1.2.221209.1)

1.2 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

  • 다른 패키지가 이미 설치된 경우 Store 및 테스트용 로드 패키지(예: 설치 관리자, NuGet 및 부트스트래퍼)가 설치되지 않는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #3168을 참조하세요.
  • 터치 패드로 스크롤할 때 탄력성 효과 및 애니메이션 곡선이 누락되는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7874를 참조하세요.
  • 메모리 누수를 유발하는 ListView의 문제가 해결되었습니다.
  • 마우스를 가리킨 후 단추 템플릿이 포그라운드 속성을 사용하지 않는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7208을 참조하세요.
  • MediaElement에 MediaPlaybackItem이 없는 경우 불필요한 예외가 발생하는 문제를 해결했습니다.
  • 콘텐츠 전환 시 MediaPlayerElement에 흰색 프레임이 표시되는 문제를 해결했습니다.
  • App.UnhandledException이 다른 스레드에서 예외를 catch하지 못하게 하는 추가 문제가 해결되었습니다. 자세한 내용은 GitHub 문제 #1259#5221을 참조하세요.

버전 1.2.1(1.2.221116.1)

1.2 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

WebView2 또는 TextBox 컨트롤을 추가할 때 C++ WinUI 3 앱에서 시작 시 충돌이 발생하는 문제를 해결했습니다. 자세한 내용은 GitHub 문제 #7911#3117을 참조하세요.

버전 1.2

다음 섹션에서는 1.2의 새로운 기능 및 업데이트된 기능, 제한 사항 및 알려진 문제에 대해 설명합니다.

참고 항목

Visual Studio 2019 및 .NET 5는 C# 앱을 빌드하는 데 더 이상 지원되지 않습니다(C# WinRT 2.0으로 이동하는 Windows 앱 SDK 1.2 참조). Visual Studio 2022 및 .NET SDK 버전 6.0.401 이상, 6.0.304, 6.0.109 중 하나가 필요합니다. 릴리스되면 WinAppSDK 1.2도 .NET 7을 지원합니다.

.NET SDK 버전을 업데이트하려면 최신 버전의 Visual Studio 2022를 설치하거나 .NET 다운로드를 방문 하세요. 필수 .NET SDK 버전 없이 NuGet 패키지를 업데이트할 때 "이 버전의 WindowsAppSDK에는 .NET 6 이상 및 WinRT.Runtime.dll 버전 2.0 이상이 필요합니다."와 같은 오류가 표시됩니다. 프로젝트를 .NET 5.0에서 .NET 6.0으로 업데이트하려면 프로젝트 파일을 열고 "TargetFramework"를 net6.0 적절한 값(예: )으로 net6.0-windows10.0.19041.0변경하고 "대상 OS 버전"을 변경합니다.

Windows의 타사 위젯

위젯 보드는 Windows 11에서 처음 도입되었으며 기본 제공 위젯 표시로 제한되었습니다. 위젯은 위젯 보드에 텍스트와 그래픽을 표시하는 작은 UI 컨테이너이며 디바이스에 설치된 앱과 연결됩니다. Windows 앱 SDK 타사 개발자는 이제 패키지된 Win32 앱에 대한 위젯을 만들고 Windows 11 위젯 보드에서 로컬로 테스트할 수 있습니다.

위젯에 대한 자세한 내용은 위젯 개요검사.

에 대한 위젯 개발을 시작하려면 위젯 서비스 공급자 개발 문서 및 위젯 디자인 기본 사항을 필수 구성 요소, 지침 및 모범 사례에 검사.

이 릴리스의 필수 구성 요소는 다음과 같습니다.

  • 개발 머신에서 사용하도록 설정된 개발자 모드입니다.
  • 개발 컴퓨터는 위젯 보드 버전 521.20060.1205.0 이상에서 25217보다 크거나 같은 WIP(Windows Insider Preview) 개발 채널에서 Windows 버전을 실행하고 있습니다.

위젯을 개발할 때 알려진 제한 사항

  • 타사 위젯은 이 미리 보기 릴리스에 대해 WIP에 등록된 디바이스에서만 로컬로 테스트할 수 있습니다.
  • 위젯은 패키지된 Win32 앱에 대해서만 만들 수 있습니다. PWA(프로그레시브 Web Apps)용 위젯은 Microsoft Edge 108일부로 지원될 예정입니다.

DisplayInformation

Windows 데스크톱 앱은 이제 WinAppSDK의 DisplayInformation 클래스를 통해 HDR(High Dynamic Range) 및 ACM(자동 색 관리 )을 지원할 수 있습니다. DisplayInformation 클래스를 사용하면 애플리케이션 보기에 대한 표시 관련 정보를 모니터링할 수 있습니다. 여기에는 클라이언트가 보기가 상주하는 디스플레이에 영향을 주는 애플리케이션 보기의 변경 내용과 애플리케이션 보기에 영향을 줄 수 있는 디스플레이의 변경 내용을 모니터링할 수 있는 이벤트가 포함됩니다.

WinUI 3

WinUI 3 앱은 MediaPlayerElement 및 MediaTransportControls 미디어 재생 컨트롤을 사용하여 오디오 및 비디오를 재생할 수 있습니다. 미디어 컨트롤을 사용하는 방법과 시기에 대한 자세한 내용은 미디어 플레이어를 참조 하세요.

WinUI 3은 WinUI 2.8의 최신 컨트롤, 스타일 및 동작으로 업데이트되었습니다. 이러한 업데이트에는 InfoBadge 컨트롤 추가, 접근성 및 고대비 모드 개선 사항, 컨트롤 전체의 버그 수정이 포함됩니다. 자세한 내용은 WinUI 2.7WinUI 2.8에 대한 릴리스 정보를 참조하세요.

수정된 문제

알려진 제한 사항

  • Visual Studio 2022 17.4.0을 사용하여 새 WinUI 3 프로젝트를 만들 때 WinAppSDK의 미리 보기 버전을 참조합니다. NuGet 패키지 관리자 사용하여 이 릴리스에 대한 참조를 업데이트합니다.
  • 압축되지 않은 앱에서는 MediaPlayerElement.Source를 상대 URI(ms-appx/ms-resource)로 설정하지 못합니다. 권장되는 해결 방법은 상대 ms-appx:/// URI를 완전히 확인된 file:/// URI로 변환하는 것입니다.

.NET을 사용하여 개발된 앱에 대한 트리밍

.NET 개발자는 이제 잘려진 WinAppSDK 앱을 게시할 수 있습니다. CsWinRT 2.0을 사용하면 WinAppSDK에 분산된 C#/WinRT 프로젝션을 이제 트리밍할 수 있습니다. 잘려진 앱을 게시하면 트리밍 가능한 이진 파일에서 사용되지 않는 코드를 제거하여 앱의 디스크 공간을 줄일 수 있습니다. 앱에서 시작 성능이 향상될 수도 있습니다. 기본 헬로 월드 앱을 통해 게시된 트리밍 시 디스크 공간이 최대 80% 향상되고 시작 성능이 7% 향상되었습니다. WinUI 갤러리를 사용하면 디스크 공간이 최대 45% 향상되었습니다.

트리밍, 트리밍 제한 사항(예: 트리밍 가능한 형식에 대한 리플렉션) 및 트리밍 경고를 사용하도록 설정하는 방법에 대한 자세한 내용은 자체 포함 배포 및 실행 파일 트리밍을 참조 하세요. 개발자는 트리밍 후 앱을 철저히 테스트하여 모든 것이 예상대로 작동하는지 확인해야 합니다. 자세한 내용은 GitHub에서 문제 2478을 검사.

Visual Studio Arm64 지원

프로젝트 리유니언(현재 WinAppSDK) 0.5부터 WinAppSDK로 개발된 앱은 Arm64에서 실행할 수 있었습니다. Visual Studio 17.3 미리 보기 2부터 Arm64 디바이스에서 WinAppSDK를 사용하여 네이티브 애플리케이션을 개발할 수 있습니다.

Arm64 디바이스에서 개발을 시작하려면 Arm 및 Arm64 Visual Studio의 Windows를 참조하세요.

알림

AppNotificationBuilder 는 앱 알림을 만들고 정의하기 위한 XML 페이로드의 대안으로 도입되었습니다.

사용량 정보는 GitHub의 AppNotificationBuilder 사양 을 참조하세요.

또한 빠른 시작을 참조하세요. 로컬 앱 알림을 보내고 받는 데스크톱 Windows 애플리케이션을 만드는 방법에 대한 예제는 Windows 앱 SDK 앱 알림입니다.

주요 변경 내용

푸시 알림의 경우 채널 요청을 호출할 때 앱은 Azure 앱 ID 대신 Azure 개체 ID를 사용해야 합니다. Azure 개체 ID를 찾는 자세한 내용은 빠른 시작: Windows 앱 SDK 푸시 알림을 참조하세요.

해결된 문제

PushNotificationManager.IsSupported는 상승 모드에 대한 검사 수행합니다. 앱이 상승하면 반환 false 됩니다.

알려진 제한 사항(알림)

  • AppNotificationScenarioUrgent에서는 Windows 빌드 19041 이상에서만 지원됩니다. AppNotificationBuilder.IsUrgentScenarioSupported를 사용하여 런타임에 기능을 사용할 수 있는지 여부를 검사 수 있습니다.
  • AppNotificationButtonhint-toolTiphint-buttonStyle에서는 빌드 19041 이상에서만 지원됩니다. IsButtonStyleSupported IsToolTipSupported를 사용하여 런타임에 기능을 사용할 수 있는지 여부를 검사 수 있습니다.
  • MediaPlayerElement에서 패키지되지 않은 앱의 XAML 태그에서 사용되는 경우 소스 속성은 ms-appx 또는 ms-resource URI로 설정할 수 없습니다. 또는 파일 URI를 사용하여 원본을 설정하거나 코드에서 설정합니다.

Windowing

이제 AppWindowTitleBar 클래스를 통해 Windows 10 버전 1809 이상에서 전체 제목 표시줄 사용자 지정을 사용할 수 있습니다. AppWindowTitleBar.ExtendsContentIntoTitleBar를 설정하여 true 콘텐츠를 제목 표시줄 영역으로 확장하고 SetDragRectangles를 설정하여 끌기 영역을 정의할 수 있습니다(다른 사용자 지정 옵션 외에).

AppWindowTitleBar.IsCustomizationSupported 속성을 사용하여 AppWindowTitleBar API를 호출할 수 있는지 여부를 검사 경우 이제 지원되는 Windows 앱 SDK Windows 10 버전(1809 이상)에서 반환 true 됩니다.

알려진 제한 사항(기간 이동)

Windows 10에서는 기본 제목 표시줄 사용자 지정이 지원되지 않습니다. BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor IconShowOptions가 포함됩니다. 이러한 속성을 호출하면 자동으로 무시됩니다. 다른 모든 AppWindowTitleBar API는 Windows 10 버전 1809 이상에서 작동합니다. 캡션 단추 색 API(기타) 및 Height 경우 ExtendsContentIntoTitleBartrue설정해야 합니다. 그렇지 않으면 자동으로 무시됩니다.

Access Control

패키지된 프로세스와 일반 Win32 API 간에 명명된 개체 공유를 용이하게 하고 간소화하기 위해 GetSecurityDescriptorForAppContainerNames 함수를 사용하여 security.accesscontrol.h를 도입했습니다. 이 메서드는 PFN(패키지 패밀리 이름) 및 액세스 마스크 목록을 사용하고 보안 설명자를 반환합니다. 자세한 내용은 GitHub의 GetSecurityDescriptorForAppContainerNames 사양 을 참조하세요.

기타 제한 사항 및 알려진 문제

Important

프로젝트에서 WinAppSDK 1.2를 참조하는 경우 다음과 유사한 오류가 표시될 수 있습니다. "검색된 패키지 다운그레이드: Microsoft.Windows.SDK.BuildTools를 10.0.22621.1에서 10.0.22000.194로", 앱 프로젝트 및 WinAppSDK 패키지의 패키지에 대한 호환되지 않는 참조로 인해 발생합니다. 이 문제를 해결하려면 프로젝트의 참조를 Microsoft.Windows.SDK.BuildTools의 최신 버전과 호환되는 버전으로 업데이트할 수 있습니다.

  • Visual Studio의 테스트 출력 창에서 오류가 발생하면 단위 테스트가 실패할 REGDB_E_CLASSNOTREG 수 있습니다. 해결 방법으로 프로젝트 파일에 추가할 <WindowsAppContainer>true</WindowsAppContainer> 수 있습니다.
  • .NET PublishSingleFile은 지원되지 않습니다.
  • 부트스트래퍼 및 실행 취소된 RegFree WinRT 자동 이니셜라이저 기본값은 실행 파일을 생성하는 프로젝트에 대해서만 설정됩니다(OutputType=Exe 또는 WinExe). 이렇게 하면 기본적으로 클래스 라이브러리 DLL 및 기타 실행 파일이 아닌 파일에 자동 이니셜라이저를 추가할 수 없습니다.
    • 실행 불가능 파일에 자동 이니셜라이저가 필요한 경우(예: 부트스트래퍼를 초기화하지 않는 제네릭 실행 파일에 의해 로드된 테스트 DLL) 또는 통해 <WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize><WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>프로젝트에서 자동 이니셜라이저를 명시적으로 사용하도록 설정할 수 있습니다.
  • Microsoft.WindowsAppRuntime.Release.Net.dll 항상 Arm64 이진이며 x86 및 x64 앱에서는 작동하지 않습니다. 부트스트랩 API를 명시적으로 호출하는 경우 Microsoft.WindowsAppRuntime.Release.Net.dll 어셈블리를 사용하지 않습니다. 해결 방법으로 NuGet 패키지와 함께 배포된 이 원본 파일에 버전 상수 ('.)를 포함할 수 있습니다. \include\WindowsAppSDK-VersionInfo.cs'이거나 자동 이니셜라이저를 사용합니다.

버전 1.1

Windows 앱 SDK 안정적인 채널의 1.1.x 계보의 최신 릴리스는 버전 1.1.5입니다. 1.1.x는 안정적인 모든 채널 기능을 지원합니다(Windows 앱 SDK 릴리스 채널의 릴리스 채널 섹션에서 사용할 수 있는 기능 참조).

버전 1.1.5

1.1 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • Mica를 사용하는 경우 아크릴이 작동하지 않는 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 7200을 참조하세요.
  • Windows 10 ARM64 컴퓨터에서 WindowsAppRuntime 설치 관리자(예: 패키지되지 않은 앱)에 의존하는 앱이 실행되지 않는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 2564를 참조하세요.

버전 1.1.4

1.1 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • 1.0.x의 회귀가 수정되어 많은 항목으로 스크롤할 때 ListView, TreeView 및 기타 'List' 컨트롤이 충돌합니다. 자세한 내용은 GitHub의 문제 7230을 참조하세요.
  • 큐에 넣기된 콜백이 더 이상 호출되지 않는 DispatcherQueue 문제를 해결했습니다.
  • 동일한 앱 세션에서 여러 번 호출 DeploymentManager.Initialize 할 때 앱 충돌이 발생하는 문제를 해결했습니다.
  • Arm64 Visual Studio에서 C# 앱을 빌드하지 못하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 7140을 참조하세요.
  • 잘못된 오류 처리로 인해 XAML 이미징 코드에서 일시적인 충돌이 수정되었습니다.
  • ItemsRepeater에서 부모 UserControl을 사용하여 이벤트 처리기를 연결할 때 발생하는 메모리 누수 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 6123을 참조하세요.
  • 테스트용 로드 시 패키지의 자동 업데이트를 사용하도록 앱 프로젝트를 구성할 때(예: .appinstaller) Visual Studio 17.3에서 빌드 오류가 발생하는 문제를 해결했습니다. 자세한 내용은 문제 2773을 참조하세요.
  • Initialize(예: 푸시에 필요)를 호출하는 스토어 분산 패키지 앱이 기본 및 싱글톤 패키지가 이미 설치되었을 때 중복적으로 DeploymentManager::GetStatus가 반환 Package Install Needed 되는 문제를 해결했습니다. 이로 인해 앱 시작 시 성능이 저하되었습니다.
  • 클린up 이벤트를 열 수 없는 경우 무시하려는 경우 단일 인스턴스 앱에서 예외가 발생하는 문제를 해결했습니다. 자세한 내용은 GitHub의 PR 을 참조하세요.

버전 1.1.3

1.1 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • 앱의 첫 번째 페이지에 ProgressBar, ProgressRing, PipsPager, PersonPicture 또는 Expander 컨트롤을 포함할 때 XAML이 충돌하는 관련 문제 집합이 수정되었습니다. 자세한 내용은 GitHub의 문제 7164를 참조하세요.
  • x64 설치 관리자가 Windows 앱 SDK 런타임을 설치하지 못하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 2713을 참조하세요.
  • 더 높은 버전의 런타임이 설치된 경우 WindowsAppRuntime을 설치하지 못하는 문제를 해결했습니다. 자세한 내용은 GitHub의 토론 2708을 참조하세요.

버전 1.1.2

1.1 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • 대화 상자가 열려 있는 동안 창을 닫을 때 XAML이 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 1032를 참조하세요.
  • StyleCop 경고를 방지하기 위해 C# 파일에 태그가 추가 <auto-generated> 되었습니다. 자세한 내용은 GitHub의 문제 4526을 참조하세요.
  • 일치하는 프레임워크 패키지가 설치되어 있지 않을 때 MddBootstrapInitialize를 호출할 때 액세스 위반 오류 및 충돌이 발생하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 2592를 참조하세요.
  • Visual Studio에서 C# WinUI 3 항목 템플릿이 누락된 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 7148을 참조하세요.
  • 시스템 사용자로 실행할 때 WindowsAppRuntime 설치 관리자가 실패하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 2546을 참조하세요.

버전 1.1.1

1.1 릴리스에 대한 중요한 버그 수정이 포함된 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • 끌어서 놓기 작업 중에 앱이 때때로 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 7002를 참조하세요.
  • AppWindowPresenterKind를 FullScreen에서 기본값으로 전환할 때 제목 표시줄이 사라지는 문제를 해결했습니다.
  • 부트스트래퍼 API ApiInformation.IsPropertyPresent 가 패키지되지 않은 앱에서 처리되지 않은 예외를 좋아하고 ApiInformation.IsMethodPresent 발생시키는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 2382를 참조하세요.
  • 펜 입력으로 애플리케이션을 최대화할 때 앱이 중지되는 문제를 해결했습니다.

버전 1.1

다음 섹션에서는 1.1의 새로운 기능 및 업데이트된 기능, 제한 사항 및 알려진 문제에 대해 설명합니다.

참고 항목

C# 개발자의 경우 다음 .NET SDK 버전(이상) 중 하나가 필요합니다. 6.0.202, 6.0.104, 5.0.407, 5.0.213. .NET SDK 버전을 업데이트하려면 .NET 다운로드를 방문하거나 최신 버전의 Visual Studio로 업데이트합니다. 필수 .NET SDK 버전이 없으면 NuGet 패키지를 업데이트할 때 "이 버전의 WindowsAppSDK에는 WinRT.Runtime.dll 버전 1.6 이상이 필요합니다."와 같은 오류가 표시됩니다.

앱 수명 주기 및 다시 시작

이제 앱은 기존 RegisterApplicationRestart API에서 특정 인수 및 상태 빌드를 사용하여 명시적 다시 시작을 시작하여 OS에 등록하여 업데이트, 중지 및 다시 부팅 시나리오에서 다시 시작할 수 있습니다.

새 기능:

  • 패키지 또는 패키지되지 않은 데스크톱 앱은 명령에서 자신을 종료하고 다시 시작하고 API를 사용하여 AppInstance.Restart() 다시 시작한 인스턴스에 대한 임의의 명령줄 문자열에 액세스할 수 있습니다.

WinUI 3

WinUI 3은 Windows 앱 SDK에 대한 기본 UX(사용자 환경) 프레임워크입니다. 이 릴리스에는 WinAppSDK 1.0의 새로운 기능과 1.0 및 1.1 미리 보기 릴리스의 몇 가지 안정성 개선 사항이 포함되어 있습니다.

새 기능:

수정된 버그:

  • 창이 두 화면으로 균등하게 분할될 때 앱이 충돌하는 Mica를 사용할 때 발생하는 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 7079를 참조하세요.
  • WebView2 SDK를 1020.46에서 1185.39로 업그레이드하여 C/C++ 런타임(CRT)이 설치되지 않은 경우 WebView2가 있는 C# 앱이 시작 시 충돌하는 문제를 해결했습니다.
  • 일부 둥근 모서리가 단색이어야 할 때 그라데이션을 표시하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 6076문제 6194를 참조하세요.
  • generic.xaml에서 업데이트된 스타일이 누락된 문제를 해결했습니다.
  • ListView의 끝으로 스크롤할 때 앱이 충돌하는 레이아웃 주기 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 6218을 참조하세요.
  • 끌어서 놓기를 사용할 때 사용자가 요소를 삭제할 수 없는 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 7008을 참조하세요.

알려진 제한 사항:

  • 사용자 지정 제목 표시줄을 사용하는 경우 캡션 컨트롤은 테마 변경 시 색을 변경하지 않습니다.
  • 대화 상자가 열려 있는 동안 사용자가 창을 닫으면 XAML이 충돌합니다.

배포

새 기능:

알려진 제한 사항:

  • Windows 앱 런타임 설치 관리자(WindowsAppRuntimeInstall.exe)를 실행하려면 사이드로드를 사용하도록 설정해야 합니다. 자세한 내용은 GitHub의 문제 2469를 참조하세요.
  • Visual Studio 프로젝트 메뉴를 통해 MSIX 패키지를 만들면 일부 시나리오에서 Visual Studio가 충돌할 수 있습니다. 이 문제는 Visual Studio 버전 17.3 미리 보기 2에서 해결되고 17.2로 서비스됩니다. 이 문제가 발생하는 경우 명령줄에서 MSIX를 생성하거나, 패키지되지 않은 프로젝트로 전환하거나, Windows 앱 SDK 1.0으로 다시 되돌리기 문제를 해결할 수 있습니다.
  • MSIX로 패키지된 자체 포함 애플리케이션은 1809에서 지원되지 않아 시작 시 앱 작동이 중단됩니다.

권한 상승

이제 앱이 상승된 권한으로 실행할 수 있습니다.

알려진 제한 사항:

환경 변수 관리자

환경 변수 관리자는 Windows 앱 SDK 1.1에 도입된 새로운 API입니다. 환경 변수 관리자를 사용하면 개발자가 한 API 화면에서 프로세스, 사용자 및 컴퓨터 범위의 환경 변수에 액세스하고 수정할 수 있습니다.

패키지된 애플리케이션에서 환경 변수 관리자를 사용하는 경우 모든 환경 변수 작업이 기록됩니다. 패키지가 제거되면 모든 환경 변수 작업이 되돌리기.

새 기능:

  • 프로세스, 사용자 및 컴퓨터 범위에서 환경 변수를 가져와서 설정합니다.
  • 자동 환경 변수는 환경 변수 관리자를 사용하는 패키지가 제거될 때 되돌리기.
  • PATH 및 PATHEXT에 대한 특정 API를 포함합니다.

알려진 제한 사항:

  • Windows 11에서만 사용 가능

MRT Core

MRT Core는 Windows 앱 SDK의 일부로 배포되는 최신 Windows 리소스 관리 시스템의 간소화된 버전입니다.

수정된 문제:

  • VS UI를 사용하여 리소스 파일을 추가할 때 리소스가 기본적으로 인덱싱되지 않는 문제가 .NET SDK 6.0.300에서 해결되었습니다. 이전 .NET SDK 버전을 사용하는 경우 1.0의 릴리스 정보에 설명된 해결 방법을 계속 사용하세요. 자세한 내용은 GitHub의 문제 1786을 참조하세요.
  • 패키지되지 않은 C++ WinUI 3 앱에서 리소스 URI가 올바르게 빌드되지 않는 문제가 Visual Studio 2022 17.2에서 해결되었습니다. 이전 Visual Studio 버전을 사용하는 경우 이 수정을 받으려면 Visual Studio를 17.2로 업데이트하세요.

알려진 제한 사항:

  • .NET 프로젝트에서 프로젝트 폴더에 복사하여 붙여넣은 리소스 파일은 앱이 이미 빌드된 경우 F5에 인덱싱되지 않습니다. 이를 해결하려면 앱을 다시 빌드합니다. 자세한 내용은 GitHub의 문제 1503을 참조하세요.

자세한 내용은 MRT Core로 리소스 관리를 참조하세요.

알림

패키지된(외부 위치로 패키지된 앱 포함) 및 패키지되지 않은 앱의 개발자는 이제 Windows 알림을 보낼 수 있습니다.

새 기능:

  • 패키지된 앱 및 패키지되지 않은 앱에 대한 앱 알림 지원
    • 개발자는 로컬 또는 자체 클라우드 서비스에서 알림 메시지라고도 하는 앱 알림을 보낼 수 있습니다. 앱 알림 개요를 참조하세요.
  • 패키지된 앱 및 패키지되지 않은 앱에 대한 푸시 알림 지원
    • 개발자는 자체 클라우드 서비스에서 원시 알림 및 앱 알림을 보낼 수 있습니다. 푸시 알림 개요를 참조하세요.

알려진 제한 사항:

  • 관리자 권한 앱에서 알림을 보내는 것은 지원되지 않습니다. PushNotificationManager::IsSupported()는 상승 모드에 대한 검사 수행하지 않습니다.

Windowing

USER32.dll 구현된 기능에 더 쉽게 프로그래밍할 수 있도록(Windows 및 메시지 참조) 이 릴리스는 그 자체로 더 많은 기능을 AppWindow 표시합니다.

새 기능:

  • 기존 창이 있는 앱은 창에 해당하는 창을 호출 AppWindow.ShowOnceWithRequestedStartupState하여 표시되는 방법을 더 자세히 제어할 ShowWindow(SW_SHOWDEFAULT)수 있습니다.
  • 앱은 창이 호출될 때 창을 활성화할지 여부를 지정하는 동안 창을 표시, 최소화 또는 복원할 수 있습니다.
  • 이제 앱은 특정 클라이언트 영역 크기를 얻기 위해 비 클라이언트 영역 크기를 계산할 필요 없이 Win32 좌표에서 창의 클라이언트 영역 크기에 대한 특정 차원을 결정할 수 있습니다.
  • SetWindowPos의 hWndInsertAfter 기능을 기반으로 하는 창의 z 순서 관리를 지원하기 위해 추가 WinRT API를 사용할 수 있습니다.
  • 사용자 지정 제목 표시줄을 그리는 앱은 AppWindowTitleBar.ExtendsContentIntoTitleBarPreferredTitleBarHeight 옵션을 설정할 수 있습니다. 이제 표준 높이 제목 표시줄 또는 대화형 콘텐츠를 위한 더 많은 공간을 제공하는 키가 큰 제목 표시줄 중에서 선택할 수 있습니다. 높은 제목 표시줄을 사용하는 시기에 대한 조언은 Fluent 디자인 지침의 제목 표시줄을 참조하세요.

수정된 문제:

  • 전체 화면 발표자가 처음 호출되면 이제 창이 전체 화면에 올바르게 맞습니다. 자세한 내용은 GitHub의 문제 1853을 참조하세요.
  • 만든 AppWindow::GetFromWindowId Windows에는 OverlappedPresenter 기본 발표자가 있지만 다른 API에서 들어오는 창 스타일에 대한 변경 내용에는 제한이 없습니다. AppWindow::Create를 사용하여 만든 Windows에는 처음부터 기본 발표자 가드레일이 있습니다. 자세한 내용은 GitHub에서 문제 2049를 참조하세요.
  • API를 OverlappedPresenter.SetBorderAndTitlebar 사용하여 캡션 단추와 테두리를 숨기면 최대화될 때 1px 위쪽 테두리가 생성됩니다. 이 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 1693을 참조하세요.

알려진 제한 사항:

  • AppWindowTitlebar API를 사용하여 표준 제목 표시줄의 색을 사용자 지정하는 경우 아이콘과 텍스트가 표준 제목 표시줄에 비해 잘못 정렬됩니다. 자세한 내용은 GitHub 문제 2459를 참조하세요.

  • GitHub 문제 2049(위 참조)를 해결할 때 GetFromWindowId에서 검색한 AppWindow에 AppWindowPresenter를 적용하는 경우 다음 버그가 도입되었습니다. 그런 다음 USER32 API를 호출하여 해당 발표자가 추적하는 창 스타일을 변경한 다음 기본 발표자를 다시 적용하여 창의 이전 상태로 되돌리기 시도합니다. 결과는 제목 표시줄이 없는 창입니다. 앱에서 발표자를 사용하고 기본이 아닌 발표자가 적용될 때 창 스타일을 변경하기 위해 USER32 호출을 사용하는 경우 이 버그가 처리될 때까지 올바른 창 동작을 보장하기 위한 해결 방법을 추가해야 할 수 있습니다. 이 문제를 해결하는 방법에 대한 템플릿으로 다음 코드 조각을 사용할 수 있습니다.

    AppWindow m_appWindow;
    OverlappedPresenter m_defaultPresenter;
    
    private void EnterFullScreen_Click(object sender, RoutedEventArgs e)
    {
        // Capture the default presenter.
        m_defaultPresenter = m_appWindow.Presenter as OverlappedPresenter;
    
        // Opt in the default overlapped presenter so it can control various aspects of the AppWindow.
        m_defaultPresenter.IsAlwaysOnTop = m_defaultPresenter.IsAlwaysOnTop;
        m_defaultPresenter.IsResizable = m_defaultPresenter.IsResizable;
        m_defaultPresenter.IsMinimizable = m_defaultPresenter.IsMinimizable;
        m_defaultPresenter.IsMaximizable = m_defaultPresenter.IsMaximizable;
        m_defaultPresenter.SetBorderAndTitleBar(m_defaultPresenter.HasBorder, m_defaultPresenter.HasTitleBar);
    
        m_appWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
    }
    
    private void ExitFullScreen_Click(object sender, RoutedEventArgs e)
    {
        m_appWindow.SetPresenter(AppWindowPresenterKind.Default);
    }
    

C#/WinRT

이제 WinUI 사용자 지정 컨트롤을 포함한 C# Windows 런타임 구성 요소가 지원됩니다. 이렇게 하면 구성 요소 작성자가 C#작성 런타임 구성 요소를 WinRT 호환 언어(예: C++/WinRT)에 배포할 수 있습니다. 연습 참조 - WinUI 3 컨트롤을 사용하여 C# 구성 요소를 만들고 GitHub의 Windows 앱 SDK 및 샘플을 사용하여 시작하는 C++/WinRT 앱에서 사용합니다.

기타 제한 사항 및 알려진 문제

  • WebView2(예: Microsoft.Identity.Client)에 의존하는 패키지를 참조하는 앱은 빌드에 실패합니다. 이는 빌드 시 충돌하는 이진 파일로 인해 발생합니다. 자세한 내용은 GitHub의 문제 2492를 참조하세요.
  • WinAppSDK C# 클래스 라이브러리 프로젝트와 함께 사용하면 dotnet build "Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent 작업을 로드할 수 없습니다."라는 빌드 오류가 표시될 수 있습니다. 프로젝트 파일에 설정된 <EnableMsixTooling>true</EnableMsixTooling> 이 문제를 해결하려면
  • 기본 WinAppSDK 템플릿은 MaxVersionTested="10.0.19041.0"이면 "10.0.22000.0"이어야 합니다. 일부 기능( 특히 UnlockedDEHs)을 완전히 지원하려면 프로젝트 파일에서 MaxVersionTested를 "10.0.22000.0"으로 업데이트합니다.

버전 1.0

Windows 앱 SDK 안정적인 채널의 1.0.x 계보의 최신 릴리스는 버전 1.0.4입니다. 1.0.x는 안정적인 모든 채널 기능을 지원합니다(Windows 앱 SDK 릴리스 채널의 릴리스 채널 섹션에서 사용할 수 있는 기능 참조).

버전 1.0.4

이는 1.0 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • Page.TopAppBar 또는 Page.BottomAppBar로 사용할 때 AppBar가 화면에 렌더링되지 않는 문제를 해결했습니다.
  • MUXControls.dll WinUI 컨트롤을 사용하는 패키지 이름이 12자 이하인 앱이 즉시 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 6360을 참조하세요.
  • 바로 가기 키 및 기타 시나리오에 문제를 일으키는 터치 입력 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 6291을 참조하세요.
  • MSIX로 패키지되거나 자체 포함으로 배포된 앱이 배포에 실패하는 문제를 해결했습니다.
  • 끌어서 놓기 작업 중에 앱이 때때로 충돌하는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 7002를 참조하세요.

버전 1.0.3

이는 1.0 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • C/C++ 런타임(CRT)이 설치되지 않은 경우 WebView2가 있는 C# 앱이 시작 시 충돌하는 문제를 해결했습니다.
  • 바로 가기 키 및 기타 시나리오에 문제를 일으키는 터치 입력 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 6291을 참조하세요.

참고: 일반적으로 서비스 릴리스에는 기능을 추가하지 않지만 이 릴리스의 WebView2 수정을 수행하려면 최신 버전의 WebView2 SDK(1020.46에서 1185.39)로 업데이트해야 했습니다. WebView2 런타임에 대한 자세한 내용은 WebView2 1.0.1185.39 및 앱 배포 및 WebView2 런타임에 대한 자세한 내용은 WebView2 SDK에 대한 릴리스 정보를 참조하세요.

버전 1.0.2

이는 1.0 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • ListView의 끝으로 스크롤할 때 앱이 충돌하는 레이아웃 주기 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 6218을 참조하세요.
  • C/C++ 런타임(CRT)이 설치되지 않은 경우 시작 시 C# 앱이 충돌하는 문제를 해결했습니다. 그러나 WebView2를 사용하는 C# 앱에는 CRT가 여전히 필요합니다. 자세한 내용은 GitHub의 문제 2117을 참조하세요.
  • 단일 프로젝트 MSIX를 사용하는 애플리케이션에서 .appinstaller 파일을 생성하지 않는 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 1821을 참조하세요.
  • WinUI 애플리케이션이 .NET 6 dotnet build을 지원하지 않는 문제가 해결되었습니다.

버전 1.0.1

이는 1.0 릴리스에 대한 중요한 버그 수정 및 다중 창 지원을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

버그 수정

  • MddBootstrapAutoinitializer가 사용하도록 설정된 ImplicitUsings로 컴파일되지 않는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 1686을 참조하세요.
  • WebView2의 포커스가 예기치 않게 손실되어 입력 및 선택 문제가 발생하는 문제가 해결되었습니다. 자세한 내용은 GitHub의 문제 5615문제 5570을 참조하세요.
  • WinUI 3 앱에서 사용자 지정 제목 표시줄을 사용할 때 Visual Studio의 앱 내 도구 모음을 핥을 수 없는 문제를 해결했습니다.
  • WinUI 3 앱에서 사용자 지정 제목 표시줄을 사용할 때 맞춤 레이아웃이 표시되지 않는 문제를 해결했습니다. 자세한 내용은 GitHub에서 문제 6333문제 6246을 참조하세요.
  • Window.SetTitlebar가 여전히 로드 중인 UIElement를 사용하여 호출되었을 때 Window.ExtendsContentIntoTitleBar 속성을 설정할 때 예외가 발생하는 문제를 해결했습니다.
  • 단일 프로젝트 MSIX 앱이 지원하지 dotnet build않는 문제가 해결되었습니다.
  • 패키지된 앱을 설치한 후 패키지되지 않은 앱이 설치되지 않는 문제를 해결했습니다. 자세한 내용은 GitHub의 문제 1871을 참조하세요.
  • 마우스 끌기 작업 중 성능 저하 문제가 해결되었습니다.
  • 패키지되지 않은 앱에서 GetWindowIdFromWindow()를 호출할 때 발생하는 충돌을 해결했습니다. 자세한 내용은 GitHub에서 토론 1891을 참조하세요.

버전 1.0의 제한 사항 및 알려진 문제는 버전 1.0.1에도 적용됩니다.

또한 사용자 지정 제목 표시줄이 있는 앱의 경우 이 릴리스에서 끌어서 놓기 작업에 사용되는 유리 창에 대한 수정 사항을 포함하는 다양한 문제를 수정했습니다. 기본값 및 동작을 사용하는 것이 좋습니다(사용해 보세요!). 기본 캡션 단추가 대화형이 되도록 제목 표시줄에서 여백을 사용하는 경우 제목 표시줄의 배경을 빨간색으로 설정한 다음 여백을 조정하여 끌기 영역을 캡션 컨트롤로 확장하는 것이 좋습니다.

새로운 기능

WinUI 3 애플리케이션에서 동일한 스레드에 여러 창을 만들고 안정화하고 사용하도록 설정했습니다. 자세한 내용은 문제 5918을 참조하세요.

버전 1.0

다음 섹션에서는 1.0의 새로운 기능과 업데이트된 기능, 제한 사항 및 알려진 문제에 대해 설명합니다.

WinUI 3

WinUI 3은 Windows 앱 SDK에 대한 기본 UX(사용자 환경) 프레임워크입니다. 이 릴리스에서는 Windows 앱 SDK 0.8의 여러 새로운 기능을 추가하고 1.0 미리 보기 릴리스에서 문제를 안정화했습니다.

새로운 기능 및 업데이트:

  • 새 컨트롤(PipsPager, Expander, BreadcrumbBar)을 추가하고 WinUI 2.6의 최신 Windows 스타일을 반영하도록 기존 컨트롤을 업데이트했습니다.
  • 단일 프로젝트 MSIX 패키징은 "빈 앱, 패키지됨..." 템플릿을 사용하여 새 응용 프로그램을 만들어 WinUI에서 지원됩니다. 템플릿을 선택합니다.
  • 이제 Windows 버전 1809 이상에서 패키지되지 않은 WinUI 3 앱 배포를 지원합니다. 자세한 내용은 첫 번째 WinUI 3 프로젝트 만들기를 참조하세요.
  • WinUI 3 프로젝트는 이제 대상 버전을 Windows 10, 버전 1809로 설정할 수 있습니다. 이전에는 버전 1903만큼만 낮게 설정할 수 있었습니다.
  • 앱 내 도구 모음, 핫 다시 로드 및 WinUI 패키지 앱용 라이브 시각적 트리는 Visual Studio 2022 Preview 5 및 GA에서 지원됩니다.

중요한 제한 사항:

  • 패키지된 WinUI 응용 프로그램 및 패키지되지 않은 WinUI 응용 프로그램 모두에 대해 알려진 문제:

    • C++ Windows 런타임 구성 요소를 참조하는 C++ 또는 C# 앱의 런타임 오류:
      • 해결하려면 아래 대상을 Windows 런타임 구성 요소의 .vcxproj 끝에 추가합니다.

        <Target Name="GetPriIndexName">
        <PropertyGroup>
            <!-- Winmd library targets use the default root namespace of the project for the App package name -->
            <PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
            <!-- If RootNamespace is empty fall back to TargetName -->
            <PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
        </PropertyGroup>
        </Target>
        
      • 예상되는 오류는 WinRT 발생 오류와 유사 합니다. 0x80004005 : ''ms-appx:///BlankPage.xaml'에서 리소스를 찾을 수 없습니다.'.

  • 단일 프로젝트 MSIX(빈 앱, 패키지된 템플릿)를 통해 WinUI 응용 프로그램에 대해 알려진 문제:

    • Visual Studio를 다시 시작할 때까지 누락된 패키지 및 게시 메뉴 항목: 빈 앱 패키지(데스크톱의 WinUI 3) 프로젝트 템플릿을 사용하여 Visual Studio 2019 및 Visual Studio 2022에서 단일 프로젝트 MSIX로 새 앱을 만들 때 Visual Studio를 닫고 다시 열 때까지 프로젝트를 게시하는 명령이 메뉴에 표시되지 않습니다.
    • 단일 프로젝트 MSIX가 있는 C# 앱은 "C++(v14x) 유니버설 Windows 플랫폼 도구" 선택적 구성 요소가 설치되어 있지 않으면 컴파일되지 않습니다. 자세한 내용은 Windows 앱 SDK 설치 도구를 참조하세요.
    • 참조된 Windows 런타임 구성 요소에 정의된 유형을 사용하는 단일 프로젝트 MSIX가 있는 앱의 잠재적인 런타임 오류: 해결하려면 활성화 가능한 클래스 항목을 appxmanifest.xml에 수동으로 추가합니다.
      • C# 응용 프로그램에서 예상되는 오류는 "COMException: 클래스가 등록되지 않음(0x80040154(REGDB_E_CLASSNOTREG))입니다.
      • C++/WinRT 응용 프로그램에서 예상되는 오류는 "winrt::hresult_class_not_registered"입니다.
  • 패키지되지 않은 WinUI 3 앱의 알려진 문제(패키지되지 않은 앱):

  • WinUI 응용 프로그램 패키징 및 배포에 대해 알려진 문제:

    • 단일 프로젝트 MSIX(빈 앱, 패키지된 템플릿)가 있는 WinUI 앱에서는 Package 명령이 지원되지 않습니다. 대신 Package & Publish 명령을 사용하여 MSIX 패키지를 만듭니다.
    • Pack 명령을 사용하여 C# 클래스 라이브러리에서 NuGet 패키지를 만들려면 활성 ConfigurationRelease인지 확인합니다.
    • C++ Windows 런타임 구성 요소에서 NuGet 패키지를 만드는 Pack 명령은 지원되지 않습니다.

자세한 내용은 또는 WinUI를 사용하여 개발을 시작하려면 다음을 참조하세요.

Windowing

Windows 앱 SDK는 사용하기 쉬운 이전 Windows.UI.WindowManagement.AppWindow 미리 보기 클래스를 발전시키고 Win32, WPF 및 WinForms를 포함하여 모든 Windows 앱에서 사용할 수 있도록 하는 AppWindow 클래스를 제공합니다.

새로운 기능

  • AppWindow는 Windows 사용자 환경 및 다른 앱과 잘 통합되는 사용하기 쉬운 창 설정 시나리오를 허용하는 고급 창 설정 API입니다. 앱 콘텐츠의 시스템 관리 컨테이너에 대한 상위 수준 추상화를 나타냅니다. 이는 콘텐츠를 호스트하는 컨테이너이며, 화면에서 앱의 크기를 조정하고 이동할 때 사용자가 상호 작용하는 엔터티를 나타냅니다. Win32에 익숙한 개발자의 경우 AppWindow를 HWND의 상위 수준 추상화로 볼 수 있습니다.
  • DisplayArea는 HMONITOR의 상위 수준 추상화이며, AppWindow와 동일한 원칙을 따릅니다.
  • DisplayAreaWatcher를 사용하면 개발자가 디스플레이 토폴로지의 변경 내용을 관찰하고 시스템에 현재 정의된 DisplayAreas를 열거할 수 있습니다.

자세한 내용은 앱 창 관리를 참조하세요.

입력

WinUI를 지원하고 개발자가 고급 입력 상호 작용을 달성할 수 있도록 하위 수준 API 표면을 제공하는 입력 API입니다.

새로운 기능

  • 포인터 API: PointerPoint, PointerPointPropertiesPointerEventArgs - XAML 입력 API를 사용하여 포인터 이벤트 정보 검색을 지원합니다.
  • InputPointerSource API: 보고서 포인터 입력에 등록된 개체를 나타내며, XAML의 SwapChainPanel API에 대한 포인터 커서 및 입력 이벤트 처리를 제공합니다.
  • 커서 API: 개발자가 커서 비트맵을 변경할 수 있습니다.
  • GestureRecognizer API: 개발자는 포인터 정보가 제공되면 끌어서 길게 누르고 클릭하는 등의 특정 제스처를 인식할 수 있습니다.

중요한 제한 사항

  • 모든 PointerPoint 고정적인 센터 함수가 제거되었습니다. GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints, GetIntermediatePointsTransformed.
  • Windows 앱 SDK는 포인터 ID를 사용하여 PointerPoint 개체 검색을 지원하지 않습니다. 대신 PointerPoint 멤버 함수 GetTransformedPoint를 사용하여 기존 PointerPoint 개체의 변환된 버전을 검색할 수 있습니다. 중간 지점의 경우 PointerEventArgs 멤버 함수 GetIntermediatePointsGetTransformedIntermediatePoints를 사용할 수 있습니다.
  • 플랫폼 SDK API Windows.UI.Core.CoreDragOperation을 직접 사용하면 WinUI 애플리케이션 내에서 작동하지 않습니다.
  • PointerPoint 속성 RawPositionContactRectRaw는 OS의 기본 값과 동일한 예측 되지 않은 값을 참조하기 때문에 제거되었습니다. 대신 PositionContactRect를 사용합니다. 이제 포인터 예측이 Microsoft.UI.Input.PointerPredictor API 개체를 사용하여 처리됩니다.

앱 수명 주기

대부분의 앱 수명 주기 기능은 이미 UWP 플랫폼에 있으며 데스크톱 응용 그로그램 유형, 특히 패키지되지 않은 콘솔 앱, Win32 앱, Windows Forms 앱 및 WPF 앱에서 사용하기 위해 Windows 앱 SDK로 가져왔습니다. UWP 플랫폼 자체에 동일한 기능이 있기 때문에 이러한 기능의 Windows 앱 SDK 구현은 UWP 앱에서 사용할 수 없습니다.

Important

UWP 앱에서 작업하는 경우 UWP에서 Windows 앱 SDK 마이그레이션을 참조하세요.

비 UWP 앱은 MSIX 패키지로 패키지될 수도 있습니다. 이러한 앱은 Windows 앱 SDK 앱 수명 주기 기능 중 일부를 사용할 수 있지만 이 기능을 사용할 수 있는 매니페스트 접근 방식을 사용해야 합니다. 예를 들어, Windows 앱 SDK RegisterForXXXActivation API를 사용할 수 없으며, 대신 매니페스트를 통해 다양한 활성화를 등록해야 합니다.

패키지된 앱에 대한 모든 제약 조건은 패키지된 WinUI 앱에도 적용되며, 아래에 설명된 대로 추가 고려 사항이 있습니다.

중요 고려 사항:

  • 다양한 활성화: GetActivatedEventArgs

    • 패키지되지 않은 앱: 완전히 사용할 수 있습니다.
    • 패키지된 앱: 사용할 수 있지만 이러한 앱은 플랫폼을 GetActivatedEventArgs사용할 수도 있습니다. 플랫폼은 Windows.ApplicationModel.AppInstance를 정의하며, Windows 앱 SDK는 Microsoft.Windows.AppLifecycle.AppInstance를 정의합니다. UWP 앱은 FileActivatedEventArgsLaunchActivatedEventArgs와 같은 ActivatedEventArgs클래스를 사용할 수 있지만 Windows 앱 SDK AppLifecycle 기능을 사용하는 앱은 클래스가 아닌 인터페이스(예: IFileActivatedEventArgs, ILaunchActivatedEventArgs 등)를 사용해야 합니다.
    • WinUi 앱: WinUI의 App.OnLaunched에는 Microsoft.UI.Xaml.LaunchActivatedEventArgs가 제공되지만 플랫폼 GetActivatedEventArgs 은 Windows.ApplicationModel.IActivatedEventArgs를 반환하고 WindowsAppSDK GetActivatedEventArgs 는 플랫폼을 LaunchActivatedEventArgs나타낼 수 있는 Microsoft.Windows.AppLifecycle.AppActivationArguments 개체를 반환합니다.
    • 자세한 내용은 다양한 활성화를 참조하세요.
  • 다양한 활성화를 위한 등록/등록 취소

    • 패키지되지 않은 앱: 완전히 사용할 수 있습니다.
    • 패키지된 앱: 대신 앱의 MSIX 매니페스트를 사용할 수 없습니다.
    • 자세한 내용은 다양한 활성화를 참조하세요.
  • 단일/다중 인스턴스화

    • 패키지되지 않은 앱: 완전히 사용할 수 있습니다.
    • 패키지된 앱: 완전히 사용할 수 있습니다.
    • WinUI 앱: 앱이 다른 인스턴스를 검색하고 활성화를 리디렉션하려는 경우 가능한 한 빨리, 그리고 창을 초기화하기 전에 이를 수행해야 합니다. 이를 사용하도록 설정하려면 앱이 DISABLE_XAML_GENERATED_MAIN 정의하고 검색 및 리디렉션을 수행할 수 있는 사용자 지정 Main(C#) 또는 WinMain(C++)을 작성해야 합니다.
    • RedirectActivationToAsync는 비동기 호출이며, 앱이 STA에서 실행 중인 경우 비동기 호출을 기다리지 않아야 합니다. Windows Forms 및 C# WinUI 앱의 경우 필요에 따라 Main을 비동기로 선언할 수 있습니다. C++ WinUI 및 C# WPF 앱의 경우 Main을 비동기로 선언할 수 없으므로 STA를 차단하지 않도록 리디렉션 호출을 다른 스레드로 이동해야 합니다.
    • 자세한 내용은 앱 인스턴스화를 참조하세요.
  • 전원/상태 알림

    • 패키지되지 않은 앱: 완전히 사용할 수 있습니다.
    • 패키지된 앱: 완전히 사용할 수 있습니다.
    • 자세한 내용은 전원 관리를 참조하세요.

알려진 문제:

  • 패키지되지 않은 Win32 앱과 충돌하는 동사 처리기의 명령줄 템플릿을 설정하는 경우 파일 형식 연결이 %1을(를) %251(으)로 잘못 인코딩합니다. 대신 부분적인 해결 방법으로 레지스트리 값을 %1(으)로 수동으로 편집할 수 있습니다. 대상 파일 경로에 공백이 있으면 여전히 실패하고 해당 시나리오에 대한 해결 방법이 없습니다.
  • 이러한 단일/다중 인스턴싱 버그는 예정된 서비스 패치에서 수정될 예정입니다.
    • x86용으로 컴파일할 때 AppInstance 리디렉션이 작동하지 않음
    • 키 등록 후 등록을 취소하고 다시 등록하면 앱이 충돌함

DWriteCore

DWriteCore는 고품질 텍스트 렌더링, 해상도 독립 윤곽선 글꼴 및 전체 유니코드 텍스트 및 레이아웃 지원을 위한 DirectX API인 DirectWrite의 Windows 앱 SDK 구현입니다. DWriteCore는 Windows 10, 버전 1809(10.0, 빌드 17763)까지의 Windows 버전에서 실행되는 DirectWrite의 한 형태로, 플랫폼 간에서 사용할 수 있습니다.

Features DWriteCore에는 몇 가지 예외를 제외하고 DirectWrite의 모든 기능이 포함되어 있습니다.

중요한 제한 사항

  • DWriteCore에는 다음과 같은 DirectWrite 기능이 포함되어 있지 않습니다.
    • 세션별 글꼴
    • EUDC(최종 사용자 정의 문자) 글꼴
    • 글꼴 스트리밍 API
  • 하위 수준의 렌더링 API는 부분적으로 지원됩니다.
  • DWriteCore는 Direct2D와 상호 운용되지 않지만 IDWriteGlyphRunAnalysisIDWriteBitmapRenderTarget를 사용할 수 있습니다.

자세한 내용은 DWriteCore 개요를 참조하세요.

MRT Core

MRT Core는 Windows 앱 SDK의 일부로 배포되는 최신 Windows 리소스 관리 시스템의 간소화된 버전입니다.

중요한 제한 사항

  • .NET 프로젝트에서 프로젝트 폴더에 복사하여 붙여넣은 리소스 파일은 앱이 이미 빌드된 경우 F5에 인덱싱되지 않습니다. 이를 해결하려면 앱을 다시 빌드합니다. 이 문제에 대한 자세한 내용은 문제 1503을 참조하세요.
  • .NET 프로젝트에서 리소스 파일이 Visual Studio UI를 사용하여 프로젝트에 추가되면 기본적으로 파일이 인덱싱되지 않을 수 있습니다. 이 문제에 대한 자세한 내용은 문제 1786을 참조하세요. 이 문제를 해결하려면 CSPROJ 파일에서 아래 항목을 제거하세요.
    <ItemGroup>
        <Content Remove="<image file name>" />
    </ItemGroup>
    <ItemGroup>
        <PRIResource Remove="<resw file name>" />
    </ItemGroup>
    
  • 패키지되지 않은 C++ WinUI 앱의 경우 리소스 URI가 올바르게 빌드되지 않습니다. 이 문제를 해결하려면 vcxproj에 다음을 추가합니다.
    <!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -->
    
    <PropertyGroup>
        <AppxPriInitialPath></AppxPriInitialPath>   
    </PropertyGroup>
    

자세한 내용은 MRT Core로 리소스 관리를 참조하세요.

배포

새로운 기능 및 업데이트

  • WindowsPackageType project 속성을 통해 Windows 앱 SDK를 자동으로 초기화하여 Windows 앱 SDK 런타임을 로드하고 Windows 앱 SDK API를 호출할 수 있습니다. 지침은 첫 번째 WinUI 3 프로젝트 만들기를 참조하세요.
  • 패키지되지 않은 앱은 독립 실행형 Windows 앱 SDK .exe 설치 관리자를 기존 MSI 또는 설치 프로그램에 통합하여 Windows 앱 SDK를 배포할 수 있습니다. 자세한 내용은 외부 위치로 패키지되거나 패키지되지 않은 프레임워크 종속 앱에 대한 Windows 앱 SDK 배포 가이드를 참조하세요.
  • 패키지되지 않은 .NET 앱은 부트스트래퍼 API용 .NET 래퍼를 사용하여 런타임에 Windows 앱 SDK 프레임워크 패키지에 대한 종속성을 동적으로 사용할 수도 있습니다. .NET 래퍼에 대한 자세한 내용은 .NET 래퍼 라이브러리를 참조하세요.
  • 패키지된 앱은 배포 API를 사용하여 필요한 모든 패키지가 컴퓨터에 설치되어 있는지 확인할 수 있습니다. 배포 API 작동 방식에 대한 자세한 내용은 프레임워크 종속 패키지 앱에 대한 Windows 앱 SDK 배포 가이드를 참조하세요.

중요한 제한 사항

  • 부트스트래퍼 API용 .NET 래퍼는 Windows 앱 SDK에 대한 액세스를 단순화하기 위해 패키지되지 않은 .NET 응용 프로그램에서만 사용하기 위한 것입니다.
  • 완전 신뢰 또는 packageManagement 제한 기능이 있는 MSIX 패키지된 앱만 배포 API를 사용하여 기본 및 싱글톤 패키지 의존성을 설치할 수 있는 권한이 있습니다. 부분-신뢰 패키지 앱에 대한 지원은 이후 릴리스에서 출시될 예정입니다.
  • F5가 x64 시스템에서 DeploymentManager.Initialize 메서드를 사용하는 x86 앱을 테스트하는 경우 WindowsAppRuntimeInstall.exe를 실행하여 x64 프레임워크가 먼저 설치되었는지 확인합니다. 그렇지 않으면 일반적으로 스토어 배포 또는 테스트용 로드를 통해 발생하는 x64 프레임워크를 배포하지 않는 Visual Studio로 인해 NOT_FOUND 오류가 발생합니다.

기타 제한 사항 및 알려진 문제

  • 모든 CPU 빌드 구성에 대한 지원 없음: 모든 CPU를 지원하는 기존 .NET 애플리케이션 또는 구성 요소에 Windows 앱 SDK를 추가할 때 원하는 아키텍처(x86, x64 또는 arm64)를 지정해야 합니다.

  • .NET 5에서 .NET 6으로 업그레이드: Visual Studio UI에서 업그레이드할 때 빌드 오류가 발생할 수 있습니다. 해결 방법으로 프로젝트 파일을 TargetFrameworkPackage 아래로 수동으로 업데이트합니다.

        <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> 
    
  • C++ UWP 도구가 설치되어 있지 않으면 C# 단일 프로젝트 MSIX 앱이 컴파일되지 않습니다. C# 단일 프로젝트 MSIX 프로젝트가 있는 경우 C++(v14x) 유니버설 Windows 플랫폼 도구 선택적 구성 요소를 설치해야 합니다.

  • 여러 버전의 Visual Studio 2019가 설치된 경우 후속 언어 VSIX가 Visual Studio 2019에 설치되지 않습니다. 여러 버전의 Visual Studio 2019(예: 릴리스 및 미리 보기)가 설치된 경우 C++ C#용 Windows 앱 SDK VSIX를 설치하면 두 번째 설치가 실패합니다. 이를 해결하려면 첫 번째 언어 VSIX 이후 Visual Studio 2019용 단일 프로젝트 MSIX 패키징 도구 설치를 제거합니다. 이 문제에 대한 자세한 내용은 이 피드백을 확인하세요.

  • DispatcherQueue.TryEnqueue 대신(디스패처 큐 스레드에서 실행을 재개하기 위해) WIL(WINDOWS 구현 라이브러리)에서 resume_foreground 도우미 함수를 사용하는 것입니다.

    1. 프로젝트에 대한 참조를 Microsoft.Windows.ImplementationLibrary NuGet 패키지에 추가합니다.
    2. #include <wil/cppwinrt_helpers.h>pch.h에 추가합니다.
    3. #include <winrt/Microsoft.UI.Dispatching.h>pch.h에 추가합니다.
    4. 이제 co_await wil::resume_foreground(your_dispatcherqueue); 입니다.

버전 0.8

Windows 앱 SDK 안정적인 채널의 0.8.x 계보의 최신 릴리스는 버전 0.8.12입니다.

참고 항목

Windows 앱 SDK는 이전에 코드 이름 프로젝트 리유니언으로 알려져 있었습니다. 버전 0.8 이전의 일부 SDK 자산은 여전히 코드 이름을 사용합니다. 설명서의 일부 영역에서는 기존 자산 또는 지정된 이전 릴리스를 언급할 때 프로젝트 리유니언을 계속 사용합니다.

버전 0.8.12

이는 0.8.0 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

참고 항목

C# 개발자의 경우 .NET SDK 버전 5.0.213, 5.0.407, 6.0.104, 6.0.202 이상 중 하나가 필요합니다. .NET SDK 버전을 업데이트하려면 .NET 다운로드를 방문하거나 최신 버전의 Visual Studio로 업데이트합니다. 필수 .NET SDK 버전이 없으면 NuGet 패키지를 업데이트할 때 "이 버전의 WindowsAppSDK에는 WinRT.Runtime.dll 버전 1.6 이상이 필요합니다."와 같은 오류가 표시됩니다.

버그 수정:

  • Access 위반으로 인해 SwapChainPanel 또는 WebView2 가 있는 앱이 예측할 수 없을 정도로 충돌하는 문제를 해결했습니다.

버전 0.8.11

이는 0.8.0 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

참고 항목

C# 개발자의 경우 .NET SDK 버전 5.0.213, 5.0.407, 6.0.104, 6.0.202 이상 중 하나가 필요합니다. .NET SDK 버전을 업데이트하려면 .NET 다운로드를 방문하거나 최신 버전의 Visual Studio로 업데이트합니다. 필수 .NET SDK 버전이 없으면 NuGet 패키지를 업데이트할 때 "이 버전의 WindowsAppSDK에는 WinRT.Runtime.dll 버전 1.6 이상이 필요합니다."와 같은 오류가 표시됩니다.

버그 수정:

  • 마우스를 사용하여 텍스트를 선택할 때 포커스 손실 이벤트가 발생하는 회귀가 수정되었습니다.

버전 0.8.10

이는 0.8.0 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

참고 항목

C# 개발자의 경우 .NET SDK 버전 5.0.213, 5.0.407, 6.0.104, 6.0.202 이상 중 하나가 필요합니다. .NET SDK 버전을 업데이트하려면 .NET 다운로드를 방문하거나 최신 버전의 Visual Studio로 업데이트합니다. 필수 .NET SDK 버전이 없으면 NuGet 패키지를 업데이트할 때 "이 버전의 WindowsAppSDK에는 WinRT.Runtime.dll 버전 1.6 이상이 필요합니다."와 같은 오류가 표시됩니다.

버그 수정:

  • 끌어서 놓기 작업 중에 앱이 때때로 충돌하는 문제를 해결했습니다.

참고 항목

Windows 앱 SDK 0.8.9가 릴리스되지 않았습니다. 0.8.8 이후에 직접 릴리스된 버전은 0.8.10입니다.

버전 0.8.8

이는 0.8.0 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK 서비스 릴리스입니다.

참고 항목

C# 개발자의 경우 다음 .NET SDK 버전(이상) 중 하나가 필요합니다. 6.0.202, 6.0.104, 5.0.407, 5.0.213. .NET SDK 버전을 업데이트하려면 .NET 다운로드를 방문하거나 최신 버전의 Visual Studio로 업데이트합니다. 필수 .NET SDK 버전이 없으면 NuGet 패키지를 업데이트할 때 "이 버전의 WindowsAppSDK에는 WinRT.Runtime.dll 버전 1.6 이상이 필요합니다."와 같은 오류가 표시됩니다.

버그 수정:

  • 소프트 키보드 및 일반적인 상호 작용과 관련된 TextBox의 터치 입력 문제를 해결했습니다. 이러한 문제는 바로 가기 키에도 영향을 줍니다. 자세한 내용은 GitHub의 문제 6291을 참조하세요.
  • 앱 창이 활성 상태일 때 비활성으로 표시되는 문제가 해결되었습니다.
  • 외부 프로세스에서 실행되는 UIA(UI 자동화)로 인한 성능 문제가 해결되었습니다.
  • 펜 입력과 관련된 앱 안정성 문제를 해결했습니다.
  • UIA로 인해 메뉴의 png 아이콘 렌더링이 크게 지연되는 문제가 해결되었습니다.

버전 0.8.7

C#/.NET 애플리케이션에 대한 몇 가지 성능 업데이트를 포함하는 Windows 앱 SDK 서비스 릴리스입니다. 이 버전으로 업데이트하려면 최신 Windows SDK 패키지 버전을 참조해야 합니다. 이렇게 하려면 앱이 속성 <WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion> 에서 TargetFramework 대상으로 하는 .csproj SDK 버전을 사용하여 파일에 속성을 추가합니다. 예시:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.19041.24</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

이 버전의 Windows SDK 프로젝션은 예정된 .NET 6 서비스 릴리스에서 사용할 수 있습니다. .NET SDK 업데이트를 사용할 수 있게 된 후에는 프로젝트 파일에서 속성을 제거 <WindowsSdkPackageVersion> 해야 합니다.

이 속성을 설정하지 않으면 다음과 같은 오류가 표시됩니다. "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."

버전 0.8.6

0.8.0 릴리스의 C#/.NET 응용 프로그램에 대한 몇 가지 성능 향상을 포함하는 Windows 앱 SDK의 서비스 릴리스입니다.

이 버전의 Windows 앱 SDK 업데이트하려면 최신 .NET SDK 12월 업데이트가 설치되어 있어야 합니다(.NET 다운로드 및 .NET 5는 2022년 5월 10일 지원 종료) 참조). 필요한 최소 버전의 .NET SDK가 설치되어 있지 않으면 다음과 같은 오류가 표시됩니다. "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."

버그 수정

성능 향상에 대한 자세한 목록은 C#/WinRT 1.4.1 릴리스 정보를 참조하세요.

버전 0.8.5

0.8.0 릴리스에 대한 더 중요한 버그 수정이 포함된 Windows 앱 SDK의 서비스 릴리스입니다.

버그 수정

  • 포인터 입력을 사용하여 WinUI 앱이 충돌하는 문제를 해결했습니다.
  • 제목 표시줄 단추(최소, 최대, 닫기)의 모서리가 Windows 11에서 둥글지 않은 문제를 해결했습니다.
  • Windows 11 최대화/복원 단추 위로 마우스를 가져가면 크기 조정 레이아웃 옵션이 표시되지 않는 문제를 해결했습니다.
  • PointCollection 개체를 만드는 경우 충돌 예외가 발생하는 문제를 해결했습니다. 자세한 내용은 Github의 문제 971을 참조하세요.

버전 0.8에 대한 제한 사항 및 알려진 문제는 아래 섹션에서 달리 표시되지 않는 한 버전 0.8.5에도 적용됩니다.

버전 0.8.4

0.8.0 릴리스에 대한 더 중요한 버그 수정이 포함된 Windows 앱 SDK의 서비스 릴리스입니다.

버그 수정

  • ContentDialog가 이를 숨기지 않고 제목 표시줄 단추가 둥글도록 사용자 지정 제목 표시줄을 수정합니다.
  • 디스플레이 크기 조정이 변경될 때 이미지 처리가 충돌하는 문제를 수정합니다.
  • UI가 사라지거나 잘못 잘리는 클리핑 버그를 수정합니다.

버전 0.8에 대한 제한 사항 및 알려진 문제는 아래 섹션에서 달리 표시되지 않는 한 버전 0.8.4에도 적용됩니다.

버전 0.8.3

0.8.0 릴리스에 대한 더 중요한 버그 수정이 포함된 Windows 앱 SDK의 서비스 릴리스입니다.

버그 수정

창을 최소화한 다음 복원할 때 키보드 포커스가 손실되어 포커스를 복원하려면 마우스 클릭이 필요했습니다.

버전 0.8에 대한 제한 사항 및 알려진 문제는 아래 섹션에서 달리 표시되지 않는 한 버전 0.8.3에도 적용됩니다.

버전 0.8.2

0.8.0 릴리스에 대한 더 중요한 버그 수정이 포함된 Windows 앱 SDK의 서비스 릴리스입니다.

버그 수정

  • Windows 앱 SDK 및 WinUI 3은 이제 Visual Studio 2022 미리 보기 2 이상에서 지원됩니다.
  • .NET 앱의 경우 열거형 배열을 전달할 때 다음 오류가 발생할 수 있습니다. Object contains non-primitive or non-blittable data.
  • 텍스트 상자 내에서 필기 패널을 사용하여 작성 시 충돌 발생
  • 아이콘/이미지는 항상 모니터 배율 값을 기반으로 하는 것이 아니라 100% 배율 값으로 로드됨
  • EventSource<T>의 가비지 수집으로 인해 후속 오류로 인한 처리기 구독 취소 발생(자세한 내용은 GitHub 문제 참조)
  • 보안 수정 – 자세한 내용은 CVE-2021-34533을 참조하세요.
  • 디스플레이 배율 변경 후 SwapChainPanel.CompositionScaleChanged에서 잘못된 CompositionScale 값을 반환하는 경우가 있습니다.

버전 0.8에 대한 제한 사항 및 알려진 문제는 아래 섹션에서 달리 표시되지 않는 한 버전 0.8.2에도 적용됩니다.

버전 0.8.1

0.8.0 릴리스에 대한 몇 가지 중요한 버그 수정이 포함된 Windows 앱 SDK의 서비스 릴리스입니다.

버그 수정

  • Windows 앱 SDK를 최신 Windows 참가자 빌드에서 실행할 수 없음
  • 드롭다운에 표시되지 않는 값을 입력할 때 EditableComboBox에서 충돌 발생
  • WebView2는 포커스가 수신되면 사용자가 탭아웃할 수 없음
  • 네임스페이스 모호성을 방지하기 위해 WinUI에서 생성된 코드에서 Windows.Foundation.Metadata.DefaultOverload 네임스페이스를 정규화합니다.
    • 이를 통해 버그 #5108이 수정되었습니다.
  • 보안 수정 – 자세한 내용은 CVE-2021-34489를 참조하세요.

버전 0.8에 대한 제한 사항 및 알려진 문제는 아래 섹션에서 달리 표시되지 않는 한 버전 0.8.1에도 적용됩니다.

버전 0.8.0 안정적인 릴리스

새로운 기능 및 업데이트

이 릴리스는 모든 안정적인 채널 기능을 지원합니다.

WinUI 3

이 릴리스에는 WinUI 3에서 많은 버그 수정 및 향상된 안정화가 포함되어 있습니다. WinUI 3 - 프로젝트 리유니언 0.5 릴리스 이후 WinUI 3의 모든 새로운 변경 내용입니다.

  • 피벗 컨트롤이 다시 추가되었으며 이제 모든 WinUI 3 앱에서 사용할 수 있습니다.

  • 프로젝트 리유니언 v0.5.5, v0.5.6 및 v0.5.7의 모든 버그 수정이 이 릴리스에 포함되어 있습니다.

  • 새로운 버그 수정은 다음과 같습니다.

    • TextBox에서 마우스 오른쪽 단추로 클릭하면 애플리케이션이 충돌함
    • NavigationView로 인해 UWP, 리유니언 0.5 미리 보기에서 충돌이 발생함
    • ProgressBar가 일시 중지됨 옵션과 오류 옵션에서 차이가 없음
    • 텍스트 스타일을 복사/붙여넣기/변경 시 RichEditBox에서 충돌 발생
    • SetTitleBar가 설정되지 않았거나 null인 경우 창 캡션 단추의 위치가 잘못될 수 있음

    이 릴리스에서 해결된 버그의 전체 목록은 GitHub 리포지토리를 참조하세요.

  • ColorHelper.ToDisplayName API는 더 이상 사용할 수 없습니다

  • 다음 유형이 제거되었습니다.

    • Microsoft.Graphics.IGeometrySource2D
    • Microsoft.Graphics.IGeometrySource2DInterop

    대신 Windows.Graphics.IGeometrySource2DWindows.Graphics.IGeometrySource2DInterop을 사용하세요.

  • DispatcherQueue 클래스를 포함하여 Microsoft.System 네임스페이스의 모든 유형이 Microsoft.UI.Dispatching 네임스페이스로 이동되었습니다.

  • HostBackdrop는 WinUI 3에서 BackgroundSource로 지원되지 않기 때문에 AcrylicBrush.BackgroundSource 속성이 제거되었습니다.

WinUI에 대한 자세한 내용은 WinUI(Windows UI) 3 라이브러리를 참조하세요.

WinUI 3 컨트롤 및 기능의 작동을 확인하려면 GitHub에서 WinUI 3 갤러리 앱을 복제 및 빌드하거나 Microsoft Store에서 앱을 다운로드할 수 있습니다.

WinUI를 사용하여 개발을 시작하려면 다음 문서를 확인하세요.

DWriteCore

이 DWriteCore 릴리스에는 다음과 같은 새로운 기능과 업데이트된 기능이 포함되어 있습니다. DWriteCore는 DWriteCore 개요에서 소개되고 설명됩니다.

참고 항목

DWriteCoreCreateFactory는 시스템 버전의 DirectWrite에서 내보낸 DWriteCreateFactory 함수와 기능적으로 동일합니다. DWriteCore 함수는 DWriteCore.libDWrite.lib를 모두 연결하는 경우 모호성을 방지하기 위해 다른 이름을 사용합니다.

DWriteCore 및 DirectWrite API 참조는 DWriteCore API 참조DirectWrite API 참조를 참조하세요.

MRTCore

  • 리소스에 대한 빌드 작업은 프로젝트에 리소스를 추가할 때 자동으로 설정되어 수동 프로젝트 구성의 필요성을 줄입니다.

제한 사항

  • 이 릴리스는 현재 Windows 참가자 프로그램 개발자 채널에서 지원되지 않습니다. 이는 버전 0.8.1에서 수정되었습니다.

  • 데스크톱 응용 그로그램(C# 또는 C++ 데스크톱): 이 릴리스는 MSIX를 사용하여 패키지된 데스크톱 응용 그로그램(C++ 또는 C#)에서만 사용할 수 있습니다. 패키지되지 않은 데스크톱 응용 그로그램에서 Windows 앱 SDK를 사용하려면 실험적 릴리스 채널을 사용해야 합니다.

Important

UWP 앱에서 작업하는 경우 UWP에서 Windows 앱 SDK 마이그레이션을 참조하세요.

알려진 문제

  • 라이브 시각적 트리, 라이브 속성 탐색기 및 버전 0.8 이상의 핫 다시 로드 같은 WinUI 3 도구에는 Visual Studio 2019 16.11 미리 보기 3 이상 버전이 필요합니다.

  • 현재 WinUI 3 및 Windows 앱 SDK 0.8을 사용하는 앱은 프로젝트 리유니언 0.5를 사용하는 클래스 라이브러리를 사용할 수 없습니다. Windows 앱 SDK 0.8을 사용하도록 클래스 라이브러리를 업데이트합니다.

  • .NET 앱은 빌드 18362 이상을 대상으로 해야 합니다. TFM은 net6.0-windows10.0.18362 이상으로 설정해야 하며 패키징 프로젝트는 18362 이상으로 설정해야 합니다. 자세한 내용은 GitHub문제 #921을 참조하세요.

  • 밝은 모드와 어둠 모드 간에 자주 전환할 때 충돌이 발생할 수 있습니다.

  • .NET 앱의 경우 열거형 배열을 전달할 때 다음 오류가 발생할 수 있습니다. Object contains non-primitive or non-blittable data.이는 버전 0.8.2에서 수정되었습니다.

  • .NET 앱의 경우 현재 Visual Studio UI를 사용하여 앱 리소스로 인덱싱되는 이미지를 옵트아웃할 방법이 없습니다. 이를 해결하려면 다음과 같이 Directory.Build.targets(지침은 빌드 사용자 지정 - Visual Studio 참조)를 프로젝트에 추가하고 이미지를 제거합니다.

    • 특정 이미지를 제거하려면(상대 경로 필요) 다음을 수행합니다.

      <Project> 
      <ItemGroup> 
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
    • 메타데이터에 따라 이미지를 제거하려면 다음을 수행합니다.

      <Project>
      <ItemGroup>
          <Content Remove="@(None->WithMetadataValue('Pack','true'))" />
      </ItemGroup>
      </Project>
      

    이 문제에 대한 수정은 향후 릴리스에 대해 계획되어 있습니다. 이 시점에서는 위의 해결 방법이 더 이상 필요하지 않습니다.

버전 0.5

Windows 앱 SDK 안정적인 채널의 0.5.x 계보의 최신 릴리스는 버전 0.5.9입니다.

새로운 기능 및 업데이트

이 릴리스는 모든 안정적인 채널 기능을 지원합니다.

알려진 문제 및 제한 사항

이 릴리스에는 다음과 같은 제한 사항 및 알려진 문제가 있습니다.

  • 데스크톱 응용 그로그램(C# 또는 C++ 데스크톱): 이 릴리스는 MSIX를 사용하여 패키지된 데스크톱 응용 그로그램(C++ 또는 C#)에서만 사용할 수 있습니다. 패키지되지 않은 데스크톱 응용 그로그램에서 Windows 앱 SDK를 사용하려면 실험적 릴리스 채널을 사용해야 합니다.
  • .NET 앱은 빌드 18362 이상을 대상으로 해야 합니다. TFM은 이상으로 설정 net6.0-windows10.0.18362 해야 하며 패키징 프로젝트는 <TargetPlatformVersion> 18362 이상으로 설정해야 합니다. 자세한 내용은 GitHub의 알려진 문제를 참조하세요.

Important

UWP 앱에서 작업하는 경우 UWP에서 Windows 앱 SDK 마이그레이션을 참조하세요.