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 или medium IL или без, если вызов выполняется для текущего пакета) может использовать этот API для получения списка зависимых (любого пакета, который определяет зависимость в манифесте) данного пакета. Пакет может использовать эти данные для отображения своих потребителей пользователю или принятия решений об обслуживании на их основе. Например, Edge может отображать все PWA, установленные на устройстве. Этот API учитывает все зарегистрированные пакеты.