Package.FindRelatedPackages(FindRelatedPackagesOptions) 方法

定义

FindRelatedPackages 方法以包列表的形式提供给定包的依赖项和依赖项。 可以使用 options 参数按依赖项类型筛选列表。

public:
 virtual IVector<Package ^> ^ FindRelatedPackages(FindRelatedPackagesOptions ^ options) = FindRelatedPackages;
IVector<Package> FindRelatedPackages(FindRelatedPackagesOptions const& options);
public IList<Package> FindRelatedPackages(FindRelatedPackagesOptions options);
function findRelatedPackages(options)
Public Function FindRelatedPackages (options As FindRelatedPackagesOptions) As IList(Of Package)

参数

options
FindRelatedPackagesOptions

定义搜索选项的 FindRelatedPackageOptions

返回

返回包含搜索结果的 IList<包>

Windows 要求

设备系列
Windows 11 Insider Preview (在 10.0.23504.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v15.0 中引入)

示例

获取依赖包的显示名称示例

对于主机运行时提供程序包,依赖包的列表对于向用户显示很有用。 在下面的示例中,当前包获取依赖它的所有主机运行时使用者的显示名称列表。

static List<string> GetDisplayNamesOfHostedAppsForCurrentPackage()
{
  List<string> displayNames = new();

  // Configure package options to get packages dependent on the app package
  var pkgdependents = PackageRelationship.Dependents;                      
  FindRelatedPackagesOptions hostRuntimeDependents = new(pkgdependents)
  {
      IncludeFrameworks = false,
      IncludeHostRuntimes = true,
      IncludeOptionals = false,
      IncludeResources = false
  };

  // Get a list of packages which are dependent on the app package.
  IList<Package> hostedPackages = Package.Current.FindRelatedPackages(hostRuntimeDependents);

  // Iterate over the dependent packages and get their display names.
  foreach (Package package in hostedPackages)
  {
    displayNames.Add(package.DisplayName);
  }

  return displayNames;
}

获取包依赖项示例

依赖包还可以收集有关其依赖项的详细信息,并相应地处理不同的情况。 在下面的示例中,当前包获取其具有非可选依赖项的包的列表。

static IList<Package> GetNonOptionalDependenciesForCurrentPackage()
{
  // Configure package options to get non-optional dependencies
  var pkgdependents = PackageRelationship.Dependencies;                      
  FindRelatedPackagesOptions nonOptionalDependency = new(pkgdependents)
  {
      IncludeFrameworks = true,
      IncludeHostRuntimes = true,
      IncludeOptionals = false,
      IncludeResources = true
  };

  // Find and return the packages which are non-optional dependencies
  return Package.Current.FindRelatedPackages(nonOptionalDependency);
}

注解

具有 packageQuery 功能或中 IL 的任何调用方 (,如果调用是针对当前包) 则可以使用此 API 获取依赖项列表 (在其清单中定义 依赖项 的任何包) 给定包。 包可以使用此数据向用户显示其使用者,或基于这些数据做出服务决策。 例如,Edge 可以显示设备上安装的所有 PWA。 此 API 可识别所有已注册的包。

适用于

另请参阅