AppInfo class for unpackaged apps
Today the AppInfo provides information about an app. However this only works for packaged apps. Please update the class to support unpackaged apps as well. For unpackaged apps, it could pull the information from the file details instead of the manifest as unpackaged apps don't have a manifest.
Windows Server 2022 has added a SupportedFileExtensions property which gives the list of registered file types in the manifest. This can be useful so the apps can declare the file types once and use them for other things like file picker however since most developers need to target older versions, they can't use it. It should be possible to reimplement such functionality by reading the manifest, so could be a separate lifted Reunion API that also supports unpackaged apps.
Populating appmodel's AppInfo object with unmodeled app info seems like the wrong approach.
Retrieving icons and other metadata would be very helpful for app pickers, our app (audio mixer), etc. Perhaps a separate undocked API proposal is in order.
+1
Windows.ApplicationModel.AppInfo has properties and methods that are meaningless and problematic for unpackaged apps. In fact most of AppInfo's properties and methods are hard to imagine how to do something useful for unpackaged apps -- Package, PackageFamilyName, and more. Not to mention the very basic basic question how do you identify an "app"? Microsoft.ApplicationModel.AppInfo.Current could use current process as the context, but what do you use for AppInfo.GetFromAppUserModelId() or other lookups?
Are you really looking for AppInfo or AppDisplayInfo? The latter provides a DisplayName, Description and Logo, for display purposes (e.g. localized for human consumption).
What information are you looking for? Please list the properties of interest (be it in AppInfo, AppDisplayInfo, other APIs or none at all)
What are you looking to do with the data? Can you outline some scenarios to help me (and others) understand what you're looking to accomplish? Much appreciated.
+1
Windows.ApplicationModel.AppInfo has properties and methods that are meaningless and problematic for unpackaged apps. In fact most of AppInfo's properties and methods are hard to imagine how to do something useful for unpackaged apps -- Package, PackageFamilyName, and more. Not to mention the very basic basic question how do you identify an "app"? Microsoft.ApplicationModel.AppInfo.Current could use current process as the context, but what do you use for AppInfo.GetFromAppUserModelId() or other lookups?
Are you really looking for AppInfo or AppDisplayInfo? The latter provides a DisplayName, Description and Logo, for display purposes (e.g. localized for human consumption).
What information are you looking for? Please list the properties of interest (be it in AppInfo, AppDisplayInfo, other APIs or none at all)
What are you looking to do with the data? Can you outline some scenarios to help me (and others) understand what you're looking to accomplish? Much appreciated.
Right, AppDisplayInfo seems a better choice however AppDisplayInfo is obtained through AppInfo.DisplayInfo.
Here's what I propose the API should look like.
[default_interface]
runtimeclass AppInfo
{
String Name { get; };
String Description { get; };
String Publisher { get; };
String AppUserModelId { get; };
Windows.ApplicationModel.PackageVersion Version { get; };
Windows.Storage.Streams.IRandomAccessStreamReference GetLogo(Windows.Foundation.Size size);
}
For packaged apps, the class will simply pull in the information from the system AppInfo class, whereas, in unpackaged apps, information will be retrieved from the executable (set through RC file). Information that's part of the package but also makes sense for unpackaged apps, such as the app version, should also be accessible through this class.