WPF로 MSIX 패키징을 사용하고 있습니다.
MSIX 버전을 가지고 오기 위해서는 WinRT 기능을 사용해야 한다고 합니다.
WPF에서 WinRT 기능을 사용하기 위해서는 Microsoft.Windows.SDK.Contracts를 사용해야 한다고 합니다. Stackoverflow
하지만 제 Visual Studio 2019에서 인식을 못하는건지 컴파일이 빨간줄이 떠서 WPF 버그겠거니 하고 일단 빌드를 했더니,
NETSDK1135 SupportedOSPlatformVersion 10.0.19041.0은 TargetPlatformVersion 7.0보다 높을 수 없습니다. 라는 에러메세지가 발생하여, 지금 링크한 게시글처럼 Project 파일에서 TargetFramework를 Microsoft.SDK.Contracts가 지원하는 버전 으로 수정하고, Microsoft.Windows.CsWinRT 라는 모듈도 설치했습니다.
하지만 여전히 인식을 못하네요.
아래는 WPF에서 WinRT 사용에 관하여 찾아본 추가 문서들입니다.
- [C #] Let’s easily utilize WinRT API from desktop application (WPF) - Source Example
- https://nicksnettravels.builttoroam.com/net-5-tfms/
- https://github.com/dotnet/designs/blob/main/accepted/2020/net5/net5.md
- Calling Windows 10 APIs From Your WPF Application – Thomas Claudius Huber
WinRT라는게 좀 찾아보니 그 옛날 Win32 API 같은 네이티브 기능을 Windows10에 맞게 현대적으로 다시 만든 모듈 같은 느낌이네요. WinUI 3.0도 2.x 버전 대에서는 Win32 API를 포함하지 않았다가 3.0 때 포함하는거 같구요…아직 뭐가 뭔지 잘 모르겠네요.
WinRT를 찾아보면 계속 UWP가 연관 키워드로 나오던데 WPF에서 UWP API를 사용하도록 하는게 WinRT라고 보면 될까요?
WPF에서 WinRT 사용해보신 분의 노하우를 기다립니다.