Windows.Management.Deployment.PackageManager - 在桌面应用程序中返回 ComObject

Windows.Management.Deployment.PackageManager - returning ComObject in desktop application

我有一个 NetCore3.1 WPF 应用程序(Windows 10,VS2019)。我可以将它打包为 MSIX 应用程序(使用 official documentation)。 在 .appxmanifest 文件中我添加了:

<Capabilities>
  <Capability Name="internetClient" />
  <rescap:Capability Name="runFullTrust" />
  <rescap:Capability Name="packageQuery" />
</Capabilities>

我可以毫无问题地安装和使用我的应用程序。问题是我尝试在我的应用程序中使用 ,如下所示:

var pkgManager = new Windows.Management.Deployment.PackageManager();
IEnumerable<Windows.ApplicationModel.Package> packages = pkgManager.FindPackagesForUser("");

我在使用它时没有遇到任何异常,但 packages 变量值为 System.__ComObject

我不明白那到底是什么,为什么我没有得到想要的结果 - 用户所有已安装的 msix 包的列表。

我设法(某种程度上)解决了我的问题。

我仍然不知道为什么我的 packages 变量 System.__ObjectCom 以及 [ 到底是什么=25=] 但似乎如果有人将此对象视为假定的对象(在我的例子中 IEnumerable)它好的

所以基本上,以下产生了一些东西(令我惊讶的是):

    IEnumerable<Windows.ApplicationModel.Package> packages = pkgManager.FindPackagesForUser("");
    List<string> installedAppsDisplayNAme = new List<string>();
    foreach (var package in packages)
    {
        installedAppsDisplayNAme.Add(package.DisplayName);
    }