다음을 통해 공유


Windows 앱 SDK 1.0에 대한 미리 보기 채널 릴리스 정보

Important

미리 보기 채널은 프로덕션 환경에서 사용할 수 없으며 미리 보기 릴리스를 사용하는 앱은 Microsoft 스토어에 게시할 수 없습니다.

미리 보기 채널에는 개발 후반 단계에서 미리 보기 채널 기능이 있는 Windows 앱 SDK 릴리스가 포함되어 있습니다. 미리 보기 릴리스에는 실험적 기능 및 API가 포함되지 않지만 다음 안정적인 릴리스 이전에도 호환성이 손상되는 변경이 발생할 수 있습니다.

중요 링크:

최신 미리 보기 채널 릴리스:

최신 안정적인 채널 릴리스:

버전 1.0 미리 보기 3(1.0.0-preview3)

미리 보기 3은 Windows 앱 SDK 버전 1.0에 대한 미리 보기 채널의 최신 릴리스입니다. 미리 보기 3은 모든 미리 보기 채널 기능을 지원합니다.

1.0 미리보기 3 Visual Studio 확장(VSIX) 다운로드

참고 항목

Windows 앱 SDK VSIX(Visual Studio 확장)이 이미 설치되어 있는 경우 새 버전을 설치하기 전에 제거합니다. 지침은 Visual Studio용 확장 관리를 참조하세요.

아래 표에서 1.0 미리 보기 3 릴리스용 VSIX(Visual Studio 확장)를 다운로드할 수 있습니다. 모든 버전의 경우 최신 Windows 앱 SDK 다운로드를 참조하세요. 아직 수행하지 않은 경우 먼저 Windows 앱 SDK 용 도구 설치의단계를 사용하여 개발 환경을 구성합니다.

아래 확장은 프로그래밍 언어 및 Visual Studio 버전에 맞게 조정됩니다.

1.0 미리 보기 3 다운로드 설명
C# Visual Studio 2019 확장 Windows 앱 SDK Visual Studio 2019 확장을 통해 C# 앱을 빌드합니다.
C++ Visual Studio 2019 확장 Windows App SDK Visual Studio 2019 확장을 통해 C++ 앱을 빌드합니다.
C# Visual Studio 2022 확장 Windows 앱 SDK Visual Studio 2022 확장을 통해 C# 앱을 빌드합니다.
C++ Visual Studio 2022 확장 Windows 앱 SDK Visual Studio 2022 확장을 통해 C++ 앱을 빌드합니다.
.exe설치 관리자 및 MSIX 패키지 .exe설치 관리자 및 MSIX 패키지를 사용하여 앱에 Windows 앱 SDK를 배포합니다.

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

WinUI 3(1.0.0-preview3)

이제 MSIX 패키징 없는 WinUI 3 앱 배포를 지원합니다. 첫 번째 WinUI 3(Windows App SDK) 프로젝트 만들기를 참조하여 포장되지 않은 배포를 지원하도록 WinUI 3 애플리케이션을 구성하십시오.

중요한 제한 사항:

  • 패키지되지 않은 WinUI 3 애플리케이션은 Windows 버전 1909 이상에서만 지원됩니다.
  • 패키지되지 않은 WinUI 3 애플리케이션은 x86 및 x64에서 지원됩니다. arm64 지원은 안정적인 다음 릴리스에 추가될 예정입니다.
  • 패키지되지 않은 앱에는 Visual Studio 2019 또는 Visual Studio 2022단일 프로젝트 MSIX 패키징 도구가 필요합니다.
  • 패키지되지 않은 앱에서 .NET 3.5를 설치하라는 메시지가 표시될 수 있습니다. 이러한 메시지는 무시해도 됩니다.
  • 일부 API는 현재 패키지되지 않은 앱에서 지원되지 않습니다. 다음 안정적인 릴리스에서 이 문제를 해결할 계획입니다. 몇 가지 예제:
  • ListView, CalendarView 및 GridView 컨트롤은 잘못된 스타일을 사용하며 안정적인 다음 릴리스에서 이 문제를 해결할 계획입니다.

자세한 내용은 WinUI 3로 개발을 시작하려면 다음을 참조하십시오:

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

  • 패키지되지 않은 앱은 Windows 10 버전 1809에서 지원되지 않습니다. 안정적인 채널의 다음 릴리스에서 이 문제를 해결할 계획입니다.

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

  • 이 릴리스에서는 C# 및 C++용 비어 있는 앱, 패키지됨(데스크톱의 WinUI 3) 프로젝트 템플릿을 도입했습니다. 이러한 템플릿을 사용하면 별도의 패키징 프로젝트를 사용하지 않고도 MSIX 패키지에 앱을 빌드할 수 있습니다(단일 프로젝트 MSIX를 사용하여 앱 패키지 참조). 이번 릴리스의 이러한 템플릿에는 다음과 같은 몇 가지 알려진 문제가 있습니다.

    • Visual Studio를 다시 시작할 때까지 게시 메뉴 항목이 없습니다. 비어 있는 앱, 패키지됨(데스크톱의 WinUI 3) 프로젝트 템플릿을 사용하여 Visual Studio 2019 및 Visual Studio 2022에서 새 앱을 만들 때 Visual Studio를 닫았다가 다시 열 때까지 프로젝트를 게시하는 명령이 메뉴에 표시되지 않습니다.

    • 단일 프로젝트 MSIX 패키징을 사용하여 C++ 정적/동적 라이브러리 프로젝트 참조를 C++ 앱에 추가할 때 오류가 발생합니다. Visual Studio 프로젝트 형식이 호환되지 않으므로 프로젝트를 참조로 추가할 수 없다는 오류가 표시됩니다.

    • 클래스 라이브러리 프로젝트에서 사용자 지정 사용자 컨트롤을 참조하는 동안 오류가 발생합니다. 시스템에서 지정된 경로를 찾을 수 없다는 오류를 나타내며 애플리케이션이 충돌합니다.

    • Visual Studio 2019용 C# 또는 C++ 템플릿. 프로젝트를 구축하려고 할 때 "프로파일 프로젝트 이름을(를) 실행할 방법을 모릅니다"라는 오류가 발생합니다. 이 문제를 해결하려면 단일 프로젝트 MSIX 패키징 도구 확장을 설치합니다.

    • Visual Studio 2019 및 Visual Studio 2022용 C# 템플릿. 디버깅 시작 또는 디버깅하지 않고 시작을 수행할 때 Visual Studio에서 앱이 배포 및 실행되지 않고 Visual Studio에서 피드백이 발생하지 않는 경우 솔루션 탐색기에서 프로젝트 노드를 클릭하여 선택한 다음, 다시 시도합니다.

    • Visual Studio 2019 및 Visual Studio 2022용 C# 템플릿. 개발 컴퓨터에서 프로젝트를 실행하거나 디버그하려고 하면 “디버그하려면 프로젝트를 배포해야 합니다. 구성 관리자 배포를 사용하도록 설정하세요.” 메시지가 표시됩니다. 이 문제를 해결하려면 구성 관리자에서 프로젝트에 대한 배포를 사용하도록 설정합니다. 자세한 지침은 첫 번째 WinUI 3(Windows App SDK) 프로젝트 만들기를 참조하세요.

    • Visual Studio 2022 버전 17.0용 C++ 템플릿은 미리 보기 4까지 릴리스됩니다. 프로젝트를 처음 실행하려고 할 때 “배포 오류가 발생했습니다.”라는 오류가 발생합니다. 이 문제를 해결하려면 프로젝트를 두 번째로 실행하거나 배포하세요. 이 문제는 Visual Studio 2022 버전 17.0 미리 보기 7에서 해결될 예정입니다.

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

  • 1.0 Preview 3을 사용하는 C# 프로젝트는 다음과 같은 .NET SDK: .NET 6 SDK 이상을 사용해야 합니다( .NET 다운로드 및 .NET 5는 2022년 5월 10일에 지원 종료에 도달합니다참조).

  • 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); 입니다.

1.0 미리 보기 1 및 미리 보기 2에 영향을 미치는 중요한 문제

Windows 앱 SDK의 버전 1.0 미리 보기 1 및 미리 보기 2에는 해당 앱이 제거되면 패키지된 앱에서 변경한 환경 변수를 정리하는 메커니즘이 포함되어 있습니다. 이 기능은 실험적 상태이며 첫 번째 릴리스에는 시스템 PATH 환경 변수를 손상시킬 수 있는 알려진 버그가 포함되어 있습니다.

미리 보기 1 및 미리 보기 2는 확장 문자 %를 포함하는 PATH 환경 변수를 손상시킵니다. 이 문제는 패키지된 앱이 제거되면 앱에서 Windows 앱 SDK를 사용하는지 여부에 관계없이 발생합니다.

PATH 환경 변수 손상 문제도 참조하세요.

세부 정보

시스템 PATH 항목은 Windows 레지스트리의 다음 키에 있는 Path 값에 저장됩니다.

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

레지스트리 편집기(regedit.exe)를 시작하는 경우 위의 경로를 복사하여 이동 경로 표시줄(메뉴 모음 바로 아래)에 붙여넣고 Enter 키를 눌러 키를 찾을 수 있습니다.

해당 키 의 Path 값은 REG_EXPAND_SZ 유형이어야 하지만 버그로 인해 REG_SZ로 변경됩니다. 또한 변수 확장 문자 %가 포함된 경우 시스템 PATH 환경 변수를 사용할 수 없게 됩니다.

영향을 받는 릴리스

완화

머신을 다시 양호한 상태로 되돌리려면 다음 단계를 수행합니다.

  1. 레지스트리의 PATH가 손상되었는지 확인하고, 손상된 경우 아래 스크립트를 실행하여 다시 설정합니다.

    다음 Windows PowerShell 스크립트를 사용하여 1단계를 수행할 수 있습니다(PowerShell Core는 작동하지 않음). 관리자 권한으로 실행합니다.

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # If the PATH in the Registry has been set to REG_SZ, then delete
    # it, and recreate it as REG_EXPAND_SZ.
    
    $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment'
    $Environment=Get-Item $EnvPath
    $PathKind = $Environment.GetValueKind('Path')
    
    if ($PathKind -ne 'ExpandString') {
      $Path = $Environment.GetValue('Path')
      Remove-ItemProperty $EnvPath -Name Path
      New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path
    }
    
  2. Windows 앱 SDK 1.0 미리 보기 1 또는 미리 보기 2를 사용하는 모든 앱을 제거합니다(아래 스크립트 참조).

  3. 버그가 포함된 패키지를 포함하여 Windows 앱 SDK 1.0 미리 보기 1/미리 보기 2 패키지를 제거합니다(아래 스크립트 참조).

    다음 Windows PowerShell 스크립트를 사용하여 2단계와 3단계를 수행할 수 있습니다(PowerShell Core는 작동하지 않음). 관리자 권한으로 실행합니다.

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it.
    
    $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*"
    Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage
    Get-AppxPackage $winappsdk | Remove-AppxPackage
    

Windows 앱 SDK 1.0 미리 보기 3의 수정 사항

PATH 환경 변수를 손상시키는 기능은 예정된 Windows 앱 SDK 1.0 미리 보기 3 릴리스에서 제거됩니다. 모든 버그가 수정되고 철저히 테스트된 경우 나중에 다시 도입될 수 있습니다.

대신, 버전 1.0 미리 보기 3을 사용하는 것이 좋습니다.

버전 1.0 미리 보기 2(1.0.0-preview2)

Important

버전 1.0 미리 보기 1 및 미리 보기 2에는 심각한 버그가 있습니다. 이러한 미리 보기 중 하나를 이미 설치했다면 문제 해결 방법을 참조하세요. 대신 버전 1.0 미리 보기 3을 사용하는 것이 좋습니다.

버전 1.0에 대한 미리 보기 채널의 최신 릴리스입니다. 이 버전은 모든 미리 보기 채널 기능을 지원합니다.

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

WinUI 3(1.0.0-preview2)

새 업데이트:

  • WinUI 2.6의 최신 Windows 스타일을 반영하도록 컨트롤이 업데이트되었습니다.
  • 단일 프로젝트 MSIX가 지원됩니다.
  • WinUI 3 패키지는 이제 빌드 17763 이상을 대상으로 할 수 있습니다. 이 문제에 대한 자세한 내용은 문제 #921을 참조하세요.
  • 앱 내 도구 모음이 지원됩니다. 그러나 앱 내 도구 모음 및 기존 핫 다시 로드/라이브 시각적 트리 지원에는 10월 말에 제공되는 예정된 Visual Studio 17.0 미리 보기 5 릴리스가 필요합니다.

버그가 수정됨: WebView2Runtime 텍스트가 이제 지역화되었습니다.

자세한 내용은 WinUI 3로 개발을 시작하려면 다음을 참조하십시오:

창(1.0.0-preview2)

이 릴리스에서는 AppWindow 클래스에 대한 업데이트를 도입했습니다. 이 릴리스에 추가된 주요 새 기능은 없지만 메서드 이름, 속성 및 일부 반환 값이 변경되었습니다. 자세한 업데이트는 설명서 및 샘플을 참조하세요. 1.0 실험적 또는 1.0 미리 보기 1 릴리스에서 AppWindow를 사용한 경우 코드가 일부 변경될 수 있습니다.

새 업데이트:

  • AppWindowConfiguration 클래스가 제거되었습니다. 이 클래스의 속성은 이제 AppWindow 자체 또는 Presenter 클래스에서 사용할 수 있습니다.
  • 이 공간의 WinRT API 메서드에 대한 대부분의 bool 반환 값은 제거되었으며 이러한 메서드가 항상 성공하기 때문에 지금은 void입니다.
  • GetWindowIdFromWindowGetWindowFromWindowId에서는 더 이상 C# ImportDll 호출이 필요하지 않습니다. 대신 Microsoft.UI.Win32Interop 클래스에서 사용할 수 있는 .NET 래퍼 메서드를 사용합니다.

중요한 제한 사항:

  • Windows 앱 SDK는 현재 UI 프레임워크 콘텐츠를 AppWindow에 연결하는 메서드를 제공하지 않습니다. HWND interop 액세스 메서드만 사용할 수 있습니다.
  • 창 제목 표시줄 사용자 지정은 Windows 11에서만 작동합니다. IsCustomizationSupported 메서드를 사용하여 제목 표시줄 사용자 지정 기능 지원을 확인합니다. 이 기능을 하위 수준으로 가져오려고 합니다.

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

입력(1.0.0-preview2)

새 업데이트:

  • 정밀도 터치 패드 입력에 대한 지원이 향상되었습니다.

중요한 제한 사항:

  • 모든 PointerPoint 고정적인 센터 함수가 제거되었습니다. GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints, GetIntermediatePointsTransformed.
  • Windows 앱 SDK는 포인터 ID를 사용하여 PointerPoint 개체 검색을 지원하지 않습니다. 대신 PointerPoint 멤버 함수 GetTransformedPoint를 사용하여 기존 PointerPoint 개체의 변환된 버전을 검색할 수 있습니다. 중간 지점의 경우 PointerEventArgs 멤버 함수 GetIntermediatePointsGetTransformedIntermediatePoints를 사용할 수 있습니다. 자세한 내용은 설명서를 참조하세요.

MRT Core(1.0.0-preview2)

새 업데이트:

  • 앱 개발자는 이제 이미지 파일 또는 RESW 파일이 .NET 프로젝트의 PRI 파일에 인덱싱되지 않도록 옵트아웃할 수 있습니다. 이 문제에 대한 자세한 내용은 문제 980을 참조하세요.

중요한 제한 사항:

  • .NET 프로젝트에서 프로젝트 폴더에 복사하여 붙여넣은 리소스 파일은 앱이 이미 빌드된 경우 F5에 인덱싱되지 않습니다. 이를 해결하려면 앱을 다시 빌드합니다. 이 문제에 대한 자세한 내용은 문제 1503을 참조하세요.
  • .NET 프로젝트에서 외부 폴더로부터 추가된 기존 리소스 파일은 빌드 작업을 수동으로 설정하지 않으면 인덱싱되지 않습니다. 이 문제를 해결하려면 Visual Studio에서 빌드 작업인 Content(이미지 파일용) 및 PRIResource(RESW 파일용)를 설정합니다. 이 문제에 대한 자세한 내용은 문제 1504를 참조하세요.

패키지되지 않은 앱 배포

새 기능:

  • Windows App SDK 1.0 Preview 2에서는 부트스트래퍼 API의 .NET 래퍼를 소개합니다( 외부 위치로 패키지화되거나 패키지화되지 않은 앱의 경우 Windows App SDK 런타임 사용참조). 부트스트래퍼 API는 패키지되지 않은 앱이 런타임에 Windows 앱 SDK 프레임워크 패키지에 대해 종속성을 동적으로 획득하는 데 사용해야 하는 네이티브 C/C++ 함수 집합입니다. .NET 래퍼는 Windows Forms 및 WPF 앱을 포함하여 .NET 앱에서 부트스트래퍼 API를 호출하는 좀 더 쉬운 방법을 제공합니다. 부트스트래퍼 API에 대한 .NET 래퍼는 앱 프로젝트에 로컬인 Microsoft.WindowsAppRuntime.Bootstrap.Net.dll 어셈블리에서 사용할 수 있습니다. .NET 래퍼에 대한 자세한 내용은 .NET 래퍼 라이브러리를 참조하세요.
  • 이제 패키지된 앱은 배포 API를 사용하여 기본 및 싱글톤 MSIX 패키지를 머신에 설치할 수 있습니다. 기본 및 싱글톤 패키지는 앱과 함께 설치되는 프레임워크 패키지의 일부이지만, Windows 애플리케이션 모델의 제한으로 인해 패키지된 앱은 이러한 패키지를 설치하기 위해 이 추가 단계를 수행해야 합니다. 배포 API의 작동 방식에 대한 자세한 내용은 프레임워크 종속 패키지 앱에 대한 Windows 앱 SDK 배포 가이드를 참조하세요.

중요한 제한 사항:

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

앱 수명 주기

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

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

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

중요 고려 사항:

  • 다양한 활성화: GetActivatedEventArgs

  • 다양한 활성화를 위한 등록/등록 취소

  • 단일/다중 인스턴스화

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

알려진 문제:

패키지되지 않은 Win32 앱과 충돌하는 동사 처리기의 명령줄 템플릿을 설정하는 경우 파일 형식 연결이 %1을(를) %251(으)로 잘못 인코딩합니다. 대신 부분적인 해결 방법으로 레지스트리 값을 %1(으)로 수동으로 편집할 수 있습니다. 대상 파일 경로에 공백이 있으면 여전히 실패하고 해당 시나리오에 대한 해결 방법이 없습니다.

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

  • 버전 1.0 미리 보기 1 및 미리 보기 2에는 심각한 버그가 있습니다. 이러한 미리 보기 중 하나를 이미 설치했다면 문제 해결 방법을 참조하세요. 대신 버전 1.0 미리 보기 3을 사용하는 것이 좋습니다.

  • 이 릴리스에서는 C# 및 C++ 프로젝트용 비어 있는 앱, 패키지됨(데스크톱의 WinUI 3) 템플릿을 도입했습니다. 이러한 템플릿은 별도의 패키징 프로젝트를 사용하지 않고 MSIX 패키지에 앱을 빌드할 수 있도록 합니다. 이번 릴리스의 이러한 템플릿에는 다음과 같은 몇 가지 알려진 문제가 있습니다.

    • Visual Studio 2019용 C# 템플릿 프로젝트를 빌드하려고 하면 “프로젝트에서 프로필 프로젝트 이름을 실행하는 방법을 모름” 오류가 발생합니다. 이 문제를 해결하려면 단일 프로젝트 MSIX 패키징 도구 확장을 설치합니다.

    • Visual Studio 2019 및 Visual Studio 2022용 C# 템플릿. 개발 컴퓨터에서 프로젝트를 실행하거나 디버그하려고 하면 “디버그하려면 프로젝트를 배포해야 합니다. 구성 관리자 배포를 사용하도록 설정하세요.” 메시지가 표시됩니다. 이 문제를 해결하려면 구성 관리자에서 프로젝트에 대한 배포를 사용하도록 설정합니다. 자세한 지침은 첫 번째 WinUI 3(Windows App SDK) 프로젝트 만들기를 참조하세요.

    • Visual Studio 2019 및 Visual Studio 2022용 C++ 템플릿. 이 릴리스에서 이러한 프로젝트는 UWP 앱에서 호출할 수 있는 Win32 API의 하위 집합을 호출하도록 제한됩니다. 비어 있는 앱, WAP로 패키지됨(데스크톱의 WinUI 3) 템플릿은 이 문제의 영향을 받지 않습니다.

    • Visual Studio 2022 버전 17.0용 C++ 템플릿은 미리 보기 4까지 릴리스됩니다. 프로젝트를 처음 실행하려고 할 때 “배포 오류가 발생했습니다.”라는 오류가 발생합니다. 이 문제를 해결하려면 프로젝트를 두 번째로 실행하거나 배포하세요. 이 문제는 Visual Studio 2022 버전 17.0 미리 보기 5에서 해결될 예정입니다.

  • 푸시 알림 API(Microsoft.Windows.PushNotifications 네임스페이스)가 1.0 미리 보기 2 릴리스에 잘못 포함되었습니다. 이는 여전히 실험적 기능이며 이를 사용하려면 1.0 실험적 릴리스를 대신 설치해야 합니다. 이 기능은 향후 1.0 릴리스에서 제거될 예정입니다.

  • 앱 수명 주기 API(Microsoft.Windows.AppLifecycle 네임스페이스)에는 1.0 미리 보기 2 릴리스에 실험적 특성을 잘못 포함합니다. 실험적 특성은 다음 릴리스의 이 API에서 제거됩니다.

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

  • 1.0 미리보기 2를 사용하는 C# 프로젝트는 다음과 같은 .NET SDK: .NET 6 SDK 이상을 사용해야 합니다( .NET 다운로드.NET 5는 2022년 5월 10일에 지원 종료에 도달합니다참조).

  • 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); 입니다.

버전 1.0 미리 보기1(1.0.0-preview1)

Important

버전 1.0 미리 보기 1 및 미리 보기 2에는 심각한 버그가 있습니다. 이러한 미리 보기 중 하나를 이미 설치했다면 문제 해결 방법을 참조하세요. 대신 버전 1.0 미리 보기 3을 사용하는 것이 좋습니다.

버전 1.0에 대한 미리 보기 채널의 최초 릴리스입니다. 이 버전은 모든 미리 보기 채널 기능을 지원합니다.

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

WinUI 3(1.0.0-preview1)

이 WinUI 3 릴리스는 버그 수정을 통해 1.0을 향해 빌드하는 데 중점을 둡니다.

  • 새 기능: 미리 보기 1에는 새로운 기능이 없습니다.
  • 해결된 문제: 이 릴리스에서 해결된 문제의 전체 목록은 GitHub 리포지토리를 참조하세요.

자세한 내용은 WinUI 3로 개발을 시작하려면 다음을 참조하십시오:

창(1.0.0-preview1)

이 릴리스에서는 실험적 1에서 도입한 Windowing API를 미리 보기 상태로 제공합니다. 이 릴리스는 버그 픽스, 안정성 및 API 서명 조정에 중점을 두기 때문에 새로운 주 기능 영역이 없습니다. 아래에는 유의할 변경 내용과 추가 사항이 나와 있습니다.

새 기능:

  • DisplayAreaWatcher가 Windowing API에 추가되었습니다. 개발자가 디스플레이 토폴로지의 변경 내용을 관찰하고 시스템에 현재 정의된 DisplayAreas를 열거하는 데 사용할 수 있습니다.
  • AppWindow는 이제 SetIcon 메서드를 통해 창 아이콘 설정을 지원하며, AppWindowTitleBar는 이제 IconShowOptions 속성을 통해 시스템 메뉴와 함께 창 아이콘을 표시할지 또는 숨길지 선택할 수 있습니다.

중요한 제한 사항:

  • AppWindow 릴리스는 현재 Win32 앱(패키지된 앱 및 패키지되지 않은 앱 모두)에서만 사용할 수 있습니다.
  • Windows 앱 SDK는 현재 UI 프레임워크 콘텐츠를 AppWindow에 연결하는 메서드를 제공하지 않습니다. HWND interop 액세스 메서드만 사용할 수 있습니다.
  • 창 제목 표시줄 사용자 지정은 Windows 11에서만 작동합니다. IsCustomizationSupported 메서드를 사용하여 제목 표시줄 사용자 지정 기능 지원을 확인합니다. 이 기능을 하위 수준으로 가져오려고 합니다.

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

입력(1.0.0-preview1)

이 릴리스에서는 입력 API에 몇 가지 새로운 기능을 제공합니다. 아래에는 유의할 변경 내용과 추가 사항이 나와 있습니다.

새로운 기능 및 업데이트:

  • PointerPredictor는 입력 대기 시간이 중요한 애플리케이션(예: 수동 입력 애플리케이션)에 향후 대기 시간을 줄이고 원활하게 애니메이트하기 위해 입력 지점 위치를 최대 15ms 안에 예측하는 기능을 제공합니다.
  • PenDeviceInterop을 사용하면 FromPointerPoint 메서드를 사용하여 Windows.Devices.Input.PenDevice에 대한 참조를 얻을 수 있습니다.
  • InputCursorCoreCursor에 있는 “사용자 지정” 형식을 제거하고 CoreCursor 개체를 별도의 개체로 분할하여 미리 설정된 시스템 커서 형식과 사용자 지정 커서 형식 간을 명시적으로 구분합니다.
  • InputCursor API를 업데이트합니다.
  • GestureRecognizer가 실험적에서 Microsoft.UI.Input으로 이동되었습니다.
  • PointerPoint가 실험적에서 Microsoft.UI.Input으로 이동되었습니다.
  • 마우스, 터치 및 펜 입력은 WinUI 3 끌어서 놓기에서 완전히 지원됩니다.

중요한 제한 사항:

  • 이 릴리스 버전의 입력 API는 Windows 버전 1809에서 알려진 문제가 있습니다.
  • MRT Core는 InputCursor의 하위 형식에서 아직 지원되지 않습니다.
  • 플랫폼 SDK API Windows.UI.Core.CoreDragOperation을 직접 사용하면 WinUI 3 애플리케이션 내에서 작동하지 않습니다.
  • PointerPoint 속성 RawPosition 및 ContactRectRaw는 OS의 기본 값과 동일한 예측 되지 않은 값을 참조하기 때문에 제거되었습니다. 대신 PositionContactRect를 사용합니다. 이제 포인터 예측이 Microsoft.UI.Input.PointerPredictor API 개체를 사용하여 처리됩니다.

MRT Core(1.0.0-preview1)

1.0 미리 보기 1 버전부터 MRT Core API가 Microsoft.ApplicationModel.Resources 네임스페이스에서 Microsoft.Windows.ApplicationModel.Resources 네임스페이스로 이동했습니다.

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

  • 버전 1.0 미리 보기 1 및 미리 보기 2에는 심각한 버그가 있습니다. 이러한 미리 보기 중 하나를 이미 설치했다면 문제 해결 방법을 참조하세요. 대신 버전 1.0 미리 보기 3을 사용하는 것이 좋습니다.

  • C++ 비어 있는 앱, WAP로 패키지됨(데스크톱의 WinUI 3) 프로젝트 템플릿을 사용하여 만든 프로젝트에는 기본적으로 다음과 같은 빌드 오류가 발생합니다. fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory. 이 문제를 해결하려면 pch.h 파일에서 다음 코드 줄을 제거합니다. 이 문제는 다음 릴리스에서 해결될 예정입니다.

    #include <winrt/microsoft.ui.dispatching.co_await.h>
    
  • 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); 입니다.
  • 모든 CPU 빌드 구성 지원 안 됨: Windows 앱 SDK는 네이티브 코드로 작성되었으므로 모든 CPU 빌드 구성을 지원하지 않습니다. 이 Visual Studio 의 WinUI 3 템플릿은 아키텍처별 빌드만 허용합니다. 모든 CPU를 지원하는 기존 .NET 애플리케이션 또는 구성 요소에 Windows 앱 SDK를 추가할 때 원하는 아키텍처를 지정해야 합니다(x86, x64 또는 arm64).

  • .NET 앱은 빌드 18362 이상을 대상으로 해야 함: TFM을 18362 이상으로 설정해야 net6.0-windows10.0.18362 하며 패키징 프로젝트를 <TargetPlatformVersion> 18362 이상으로 설정해야 합니다. 자세한 내용은 GitHub의 알려진 문제를 참조하세요.

  • 1.0 미리보기 1를 사용하는 C# 프로젝트는 다음과 같은 .NET SDK: .NET 6 SDK 이상을 사용해야 합니다( .NET 다운로드.NET 5는 2022년 5월 10일에 지원 종료에 도달합니다참조).

  • 패키지되지 않은 앱은 Windows 10 버전 1809에서 지원되지 않음: 이 문제는 다음 릴리스에서 해결되어야 합니다.