Skip to content

Upgrade to Windows App SDK 1.8 #292

@Arlodotexe

Description

@Arlodotexe

Background

Originally posted in the Windows App Community Discord server in #community-toolkit.

A few relevant links:

@0x5bfa mentioned the metapackage part of the release notes:

The Windows App SDK NuGet package has been converted to a NuGet metapackage. Each component contributing to the Windows App SDK is now a component NuGet package and is listed as a dependency by the metapackage. This allows developers to choose either the metapackage or select specific component packages for their applications.

Problem

Looking at the dependencies on 1.8 versus our current 1.6 version, we see:

Microsoft.WindowsAppSDK.AI (= 1.8.37)
Microsoft.WindowsAppSDK.Base (= 1.8.250831001)
Microsoft.WindowsAppSDK.DWrite (= 1.8.25090401)
Microsoft.WindowsAppSDK.Foundation (= 1.8.250906002)
Microsoft.WindowsAppSDK.InteractiveExperiences (= 1.8.250906004)
Microsoft.WindowsAppSDK.Runtime (= 1.8.250907003)
Microsoft.WindowsAppSDK.Widgets (= 1.8.250904007)
Microsoft.WindowsAppSDK.WinUI (= 1.8.250906003)

There's both new things here (AI), and there's existing code extracted into transitive package dependencies. The toolkit doesn't need to depend on most of these!

Solution

To determine which of these transitive packages we do need to depend on, we'd either need a namespace map or we'd need to invidually (manually) check what they do and if/where we depend on them throughout the toolkit.

Notably, Microsoft.WindowsAppSDK.WinUI depends on:

Microsoft.WindowsAppSDK.Base (>= 1.8.250831001)
Microsoft.WindowsAppSDK.Foundation (>= 1.8.250906002)
Microsoft.WindowsAppSDK.InteractiveExperiences (>= 1.8.250906004)

Which means we'll be pulling in these ambiguous ones anywhere we depend on WinUI-- this should cover the majority of toolkit components.

It might be enough to just replace our reference to Microsoft.WindowsAppSDK with a reference to Microsoft.WindowsAppSDK.WinUI. If that's not enough, we'll quickly learn why from the error.

Metadata

Metadata

Assignees

Labels

external ⤴️Requires an update to an external dependency or due to code outside the Toolkit.

Type

No type

Projects

Status

🔖 Ready

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions