-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Milestone
Description
Projects targeting Windows (for example via a TargetFramework of net5.0-windows10.0.18362) should automatically have access to WinRT APIs available in the targeted version of Windows.
This is basically the same as #11234, but for Windows. The Windows SDK team should create targeting packs and runtime packs for the WinRT APIs, and the SDK should reference them as appropriate.
For Windows, the KnownFrameworkReference items and the implicit FrameworkReference would go in the WindowsDesktop targets files.
Related work:
- Create "AnyCPU" targeting/runtime packs for each version of Windows we will support targeting (possible list: 17763, 18362, 19041)
- Update .NET SDK to consume targeting / runtime packs as appropriate for specified target platform (via the
TargetPlatformIdentifierandTargetPlatformVersionproperties, which will usually be parsed out from theTargetFramework) - Update .NET SDK to set default
TargetPlatformVersionfor Windows to 7.0: Set default TargetPlatformVersion for Windows #11233 - Update .NET SDK to error out appropriately if
TargetPlatformIdentifieris Windows andTargetPlatformVersionis not recognized: Generate error if TargetPlatformVersion is not a valid version when targeting Windows #12456 - Investigate benefits of using crossgen for CSWinRT assets. Investigate crossgen performance impact with CsWinRT generated SDK interop microsoft/CsWinRT#317 Depending on the results of this:
- Create separate runtime packs for each architecture with crossgen'd versions of CSWinRT assets
- Update .NET SDK to consume these runtime packs
- Decorate WinRT APIs with attributes to support adaptive code analysis via the Roslyn analyzer - Proposed attributes for annotations