- 
                Notifications
    
You must be signed in to change notification settings  - Fork 395
 
Description
Installing an application with a .appInstaller-file is a quick way to define dependencies between MSIX packages, enable automatic updates and pre-configure a couple other settings for installation. It works pretty well, I especially like the 1 line background-auto-updater.
If an app was installed by appinstaller, on Windows 10 there are only very few APIs that interact with this system at all, for example Package.CheckUpdateAvailabilityAsync() this API provides no options at all.
As applications get more users more complex feature requests arise:
- Different Update Channels
 - Opting out of updates
 - Splitting products into different variants
 - A/B testing
 - incremental rollout
 
Some of these features could be implemented by serving different .appinstaller-files based on client IP or similar techniques. But it would be much better to allow some customization options to apps.
In Windows 11 there are new APIs to allow the app to read (and write some) of these configurations:
- AppInstallerManager provides read/write access to ~half the info (UpdateSettings)
 - Windows.ApplicationModel.Package.AppInstallerInfo provides read-only access to most of the other half (URIs etc)
(Use PackageManager.FindPackage*() to get Package object(s) and then pkg.GetAppInstallerInfo() (from @DrusTheAxe on Discord) 
This feature request is to make all properties writable and to bring these APIs to Windows 10. Additionally, this would prepare the way for future improvements and bug fixes to happen via WinAppSDK instead of in Windows.
These kind of APIs will not see any usage, until an app can rely on them being available and working on all supported versions of Windows. Dropping support for Windows 10 is not going to happen for most apps in the next two years, so Updater/Installer-APIs that only work on 11 are not helpful in the near-term.
There was some discussion of this issue with @DrusTheAxe on Discord here: https://discord.com/channels/372137812037730304/1360013646050099280/1429996412732702822