Windows 앱 SDK 1.2에 대한 안정적인 채널 릴리스 정보
안정적인 채널은 프로덕션 환경의 앱에서 사용할 수 있도록 지원되는 Windows 앱 SDK의 릴리스를 제공합니다. Windows 앱 SDK의 안정적인 릴리스를 사용하는 앱을 Microsoft Store에 게시할 수도 있습니다.
중요 링크:
- 기존 앱을 이전 버전의 Windows 앱 SDK에서 최신 버전으로 업그레이드하려면 기존 프로젝트를 Windows 앱 SDK의 최신 릴리스로 업데이트를 참조하세요.
최신 안정적인 채널 릴리스:
Windows App SDK 다운로드
참고 항목
Windows 앱 SDK Visual Studio 확장(VSIX)은 더 이상 별도의 다운로드로 배포되지 않습니다. Visual Studio 내의 Visual Studio Marketplace에서 사용할 수 있습니다.
Version 1.2.5 (1.2.230313.1)
1.2 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK의 서비스 릴리스입니다.
- 컴퍼지션 종료 중에 앱이 충돌하는 문제를 해결했습니다.
- 화면이 꺼져 있는 경우에도 앱이 애니메이션을 계속 실행하는 문제를 해결했습니다.
- 마우스 및 키보드 입력이 동시에 발생했을 때 WebView2에서 마우스 및 터치 입력이 실패하는 문제를 해결했습니다. 자세한 내용은 GitHub 이슈 #3266를 참조하십시오.
Version 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을 참조하세요.
Version 1.2.3 (1.2.230118.102)
1.2 릴리스에 대한 중요한 버그 수정을 포함하는 Windows 앱 SDK의 서비스 릴리스입니다.
- 여러 창을 닫을 때 WinUI 3 앱이 충돌하는 문제를 해결했습니다.
- ThreadPoolTimer 인터페이스에 대한 두 개 이상의 참조가 호출될 때 앱이 닫히는 문제를 해결했습니다. 자세한 내용은 GitHub 이슈 #7260 및 #7239를 참조하십시오.
- 모든 단일 프로젝트 MSIX 앱이 완전 신뢰로 실행되는 문제를 해결했습니다. 자세한 내용은 GitHub 이슈 #7766를 참조하십시오.
Version 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를 참조하십시오.
Version 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# 앱 구축에 지원되지 않습니다( Windows App SDK 1.2에서 C# WinRT 2.0로이동 참조). 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의 타사 위젯
위젯 보드는 윈도우 11에서 처음 선보였으며 내장된 위젯을 표시하는 것으로 제한되었습니다. 위젯은 위젯 보드에 텍스트와 그래픽을 표시하는 작은 UI 컨테이너이며, 장치에 설치된 앱과 연관되어 있습니다. Windows App SDK를 사용하면 타사 개발자가 패키지된 Win32 앱에 대한 위젯을 만들고 Windows 11 위젯 보드에서 로컬로 테스트할 수 있습니다.
위젯에 대한 자세한 내용은 위젯 개요를 확인하십시오.
앱용 위젯 개발을 시작하려면 위젯 서비스 공급자 개발 문서 및 위젯 설계 기본사항 에서 전제조건, 지침 및 모범사례를 확인하십시오.
이 릴리스의 필수 구성 요소는 다음과 같습니다.
- 개발 머신에서 사용하도록 설정된 개발자 모드입니다.
- 개발 컴퓨터는 위젯 보드 버전 521.20060.1205.0 이상에서 25217보다 크거나 같은 WIP(Windows Insider Preview) 개발 채널에서 Windows 버전을 실행하고 있습니다.
위젯을 개발할 때 알려진 제한 사항:
- 타사 위젯은 이 미리 보기 릴리스에 대해 WIP에 등록된 디바이스에서만 로컬로 테스트할 수 있습니다.
- 위젯은 패키지된 Win32 앱에 대해서만 만들 수 있습니다. PWA(Progressive Web Apps) 위젯은 Microsoft Edge 108의 일부로 지원될 계획입니다.
DisplayInformation
Windows 데스크톱 앱은 이제 WinAppSDK의 DisplayInformation 클래스를 통해 HDR(High Dynamic Range) 및 ACM(자동 색 관리 )을 지원할 수 있습니다. DisplayInformation 클래스를 사용하면 애플리케이션 보기에 대한 표시 관련 정보를 모니터링할 수 있습니다. 여기에는 클라이언트가 보기가 상주하는 디스플레이에 영향을 주는 애플리케이션 보기의 변경 내용과 애플리케이션 보기에 영향을 줄 수 있는 디스플레이의 변경 내용을 모니터링할 수 있는 이벤트가 포함됩니다.
WinUI 3
WinUI 3 앱은 MediaPlayerElement 및 MediaTransportControls Media Playback 컨트롤로 오디오 및 비디오를 재생할 수 있습니다. 미디어 컨트롤을 사용하는 방법과 시기에 대한 자세한 내용은 미디어 플레이어를 참조 하세요.
WinUI 3은 WinUI 2.8의 최신 컨트롤, 스타일 및 동작으로 업데이트되었습니다. 이러한 업데이트에는 InfoBadge 컨트롤 추가, 접근성 및 고대비 모드 개선 사항, 컨트롤 전체의 버그 수정이 포함됩니다. 자세한 내용은 WinUI 2.7 및 WinUI 2.8에 대한 릴리스 정보를 참조하세요.
수정된 문제:
- DesktopAcrylicController 와 함께 아크릴 배경 자료는 이제 Windows 10 앱에서 지원됩니다. 자세한 내용은 GitHub에서 발행되는 7112를 확인하십시오.
- App.UnhandledException의 라우팅이 실패하는 다양한 문제를 해결했습니다. 자세한 내용은 GitHub에서 발행되는 5221를 확인하십시오. 다시 기본 문제와 관련하여 해결 방법은 다음 GitHub 문제에 설명되어 있으며 향후 1.2 릴리스에서 해결될 예정입니다:
- ListView 스타일이 회귀하고 WinAppSDK 1.1에서 변경되는 문제를 해결했습니다. 자세한 내용은 GitHub에서 발행되는 7666를 확인하십시오.
- 앱이 비활성 상태일 때 잘못된 Mica 대체 배경색이 나타나는 문제를 해결했습니다. 자세한 내용은 GitHub에서 발행되는 7801를 확인하십시오.
알려진 제한 사항:
- 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 장치에서 개발을 시작하려면 Windows on Arm 및 Arm64 Visual Studio 를 참조하십시오.
알림
AppNotificationBuilder 는 앱 알림을 만들고 정의하기 위한 XML 페이로드의 대안으로 도입되었습니다.
사용량 정보는 GitHub의 AppNotificationBuilder 사양 을 참조하세요.
또한 로컬 앱 알림을 주고 받는 데스크톱 Windows 응용 프로그램을 만드는 방법에 대한 예는 Windows App SDK의Quickstart: App 알림을 참조하십시오.
호환성이 손상되는 변경:
푸시 알림의 경우 채널 요청을 호출할 때 앱은 Azure 앱 ID 대신 Azure 개체 ID를 사용해야 합니다. Azure Object ID 찾기에 대한 자세한 내용은 Quickstart: Windows App SDK에서 Push 알림을 참조하십시오.
해결된 문제:
PushNotificationManager.IsSupported는 상승 모드에 대한 검사 수행합니다. 앱이 상승하면 반환 false
됩니다.
알려진 제한 사항(알림):
- AppNotificationScenario에서,
Urgent
는 Windows 빌드 19041 이상에서만 지원됩니다. AppNotificationBuilder.IsUrgentScenarioSupported를 사용하여 런타임에 기능을 사용할 수 있는지 여부를 검사 수 있습니다. - AppNotificationButton에서,
hint-toolTip
와hint-buttonStyle
는 빌드 19041 이상에서만 지원됩니다. IsButtonStyleSupported 및 IsToolTipSupported를 사용하여 런타임에 기능을 사용할 수 있는지 여부를 검사 수 있습니다. - MediaPlayerElement에서 패키지되지 않은 앱의 XAML 태그에서 사용되는 경우 소스 속성은 ms-appx 또는 ms-resource URI로 설정할 수 없습니다. 또는 파일 URI를 사용하여 원본을 설정하거나 코드에서 설정합니다.
Windowing
이제 Windows 10, 1809 버전 이상에서 AppWindowTitleBar 클래스를 통해 전체 제목 표시줄 사용자 지정을 사용할 수 있습니다. AppWindowTitleBar.ExtendsContentIntoTitleBar를 true
로 설정하여 컨텐츠를 제목 표시줄 영역으로 확장하고, SetDragRectangles를 설정하여 드래그 영역을 정의할 수 있습니다(다른 사용자 지정 옵션 외에도).
AppWindowTitleBar.IsCustomizationSupported 속성을 사용하여 AppWindowTitleBar API를 호출할 수 있는지 확인했다면 이제 지원되는 Windows App SDK Windows 10 버전(1809 이상)에서 true
을(를) 반환합니다.
알려진 제한 사항(기간 이동):
Windows 10에서는 기본 제목 표시줄 사용자 지정이 지원되지 않습니다. 여기에는 배경색, 비활성 배경색, 전경색, 비활성 전경색 및 아이콘쇼 옵션이 포함됩니다. 이러한 속성을 호출하면 자동으로 무시됩니다. 다른 모든 AppWindowTitleBar API는 Windows 10 버전 1809 이상에서 작동합니다. 캡션 버튼 색상 API(기타 중에서도) 및 높이의 경우 Extends Content IntoTitleBar을 true
로 설정해야 합니다. 그렇지 않으면 자동으로 무시됩니다.
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>
프로젝트에서 자동 이니셜라이저를 명시적으로 사용하도록 설정할 수 있습니다.
- 실행 불가능 파일에 자동 이니셜라이저가 필요한 경우(예: 부트스트래퍼를 초기화하지 않는 제네릭 실행 파일에 의해 로드된 테스트 DLL) 또는 통해
- Microsoft.WindowsAppRuntime.Release.Net.dll 항상 Arm64 이진이며 x86 및 x64 앱에서는 작동하지 않습니다. 부트스트랩 API를 명시적으로 호출하는 경우 Microsoft.WindowsAppRuntime.Release.Net.dll 어셈블리를 사용하지 않습니다. 해결 방법으로 NuGet 패키지와 함께 배포된 이 원본 파일에 버전 상수 ('.)를 포함할 수 있습니다. \include\WindowsAppSDK-VersionInfo.cs'이거나 자동 이니셜라이저를 사용합니다.
관련 항목
Windows developer