次の方法で共有


Package.FindRelatedPackages(FindRelatedPackagesOptions) メソッド

定義

FindRelatedPackages メソッドは、依存関係を提供し、特定のパッケージの依存関係を Package リストとして提供します。 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 機能または Medium IL を使用する場合、または現在のパッケージの呼び出しがない場合) は、この API を使用して、特定のパッケージの依存 (マニフェストで 依存関係 を定義するすべてのパッケージ) の一覧を取得できます。 パッケージは、このデータを使用して、コンシューマーをユーザーに表示したり、それに基づいてサービスの決定を行ったりすることができます。 たとえば、Edge では、デバイスにインストールされているすべての PWA を表示できます。 この API は、登録されているすべてのパッケージを認識します。

適用対象

こちらもご覧ください