PackageManager.FindPackages Метод

Определение

Перегрузки

FindPackages(String, String)

Находит все установленные пакеты с указанным именем и издателем.

FindPackages(String)

Извлекает сведения об указанном семействе пакетов, установленных для всех пользователей.

FindPackages()

Извлекает сведения об указанном семействе пакетов, установленных для всех пользователей.

FindPackages(String, String)

Находит все установленные пакеты с указанным именем и издателем.

public:
 virtual IIterable<Package ^> ^ FindPackages(Platform::String ^ packageName, Platform::String ^ packagePublisher) = FindPackages;
/// [Windows.Foundation.Metadata.Overload("FindPackagesByNamePublisher")]
IIterable<Package> FindPackages(winrt::hstring const& packageName, winrt::hstring const& packagePublisher);
[Windows.Foundation.Metadata.Overload("FindPackagesByNamePublisher")]
public IEnumerable<Package> FindPackages(string packageName, string packagePublisher);
function findPackages(packageName, packagePublisher)
Public Function FindPackages (packageName As String, packagePublisher As String) As IEnumerable(Of Package)

Параметры

packageName
String

Platform::String

winrt::hstring

Имя пакета. Этот параметр не может иметь значение NULL.

packagePublisher
String

Platform::String

winrt::hstring

Издатель пакета. Этот параметр не может иметь значение NULL.

Возвращаемое значение

Если метод выполняется успешно, возвращается перечисляемая коллекция объектов пакета с тем же именем пакета и именем издателя. Каждый объект Package в этой коллекции содержит сведения о пакете, включая, помимо прочего, его имя, издатель, версию и расположение установки. Если пакеты с указанным именем и издателем не найдены, этот метод возвращает пустой список.

Атрибуты

Требования к Windows

Возможности приложения
packageQuery

Комментарии

Для этого метода требуются права администратора.

См. также раздел

Применяется к

FindPackages(String)

Извлекает сведения об указанном семействе пакетов, установленных для всех пользователей.

public:
 virtual IIterable<Package ^> ^ FindPackages(Platform::String ^ packageFamilyName) = FindPackages;
/// [Windows.Foundation.Metadata.Overload("FindPackagesByPackageFamilyName")]
IIterable<Package> FindPackages(winrt::hstring const& packageFamilyName);
[Windows.Foundation.Metadata.Overload("FindPackagesByPackageFamilyName")]
public IEnumerable<Package> FindPackages(string packageFamilyName);
function findPackages(packageFamilyName)
Public Function FindPackages (packageFamilyName As String) As IEnumerable(Of Package)

Параметры

packageFamilyName
String

Platform::String

winrt::hstring

Имя семейства пакетов. Этот параметр не может иметь значение NULL.

Возвращаемое значение

Если метод выполнен успешно, возвращается перечисляемая коллекция объектов пакета с тем же именем семейства пакетов. Каждый объект Package в этой коллекции содержит сведения о пакете, включая, помимо прочего, его имя, издатель, версию и расположение установки. Если пакеты с указанным именем семейства пакетов не найдены, этот метод возвращает пустой список.

Атрибуты

Требования к Windows

Возможности приложения
packageQuery

Комментарии

Для этого метода требуются права администратора. Каждый пакет в коллекции IIterable(Package) может быть установлен для текущего пользователя или для другого пользователя. Этот метод отличается от метода FindPackages(String packageName, String pulisherName). Здесь параметр packageFamilyName представляет собой одну строку, состоящую из имени пакета и хэша издателя пакета.

См. также раздел

Применяется к

FindPackages()

Извлекает сведения об указанном семействе пакетов, установленных для всех пользователей.

public:
 virtual IIterable<Package ^> ^ FindPackages() = FindPackages;
/// [Windows.Foundation.Metadata.Overload("FindPackages")]
IIterable<Package> FindPackages();
[Windows.Foundation.Metadata.Overload("FindPackages")]
public IEnumerable<Package> FindPackages();
function findPackages()
Public Function FindPackages () As IEnumerable(Of Package)

Возвращаемое значение

Если метод выполнен успешно, возвращается перечисляемая коллекция объектов пакета. Каждый объект Package в этой коллекции содержит сведения о пакете, включая, помимо прочего, его имя, издатель, версию и расположение установки.

Атрибуты

Требования к Windows

Возможности приложения
packageQuery

Примеры

В этом примере findPackages() используется для перечисления установленных пакетов для всех пользователей.

using Windows.Management.Deployment;

public static int Main(string[] args)
{
    PackageManager packageManager = new PackageManager();

    IEnumerable<Windows.ApplicationModel.Package> packages = 
        (IEnumerable<Windows.ApplicationModel.Package>) packageManager.FindPackages();

    int packageCount = 0;
    foreach (var package in packages)
    {
        DisplayPackageInfo(package);

        packageCount += 1;
    }

    if (packageCount < 1)
    {
        Console.WriteLine("No packages were found.");
    }
}

private static void DisplayPackageInfo(Windows.ApplicationModel.Package package)
{
    Console.WriteLine("Name: {0}", package.Id.Name);

    Console.WriteLine("FullName: {0}", package.Id.FullName);

    Console.WriteLine("Version: {0}.{1}.{2}.{3}", package.Id.Version.Major, package.Id.Version.Minor,
        package.Id.Version.Build, package.Id.Version.Revision);

    Console.WriteLine("Publisher: {0}", package.Id.Publisher);

    Console.WriteLine("PublisherId: {0}", package.Id.PublisherId);

    Console.WriteLine("Installed Location: {0}", package.InstalledLocation.Path);

    Console.WriteLine("IsFramework: {0}", package.IsFramework);
}

Также см. сведения в разделе Поддержка Visual Studio для C++/WinRT, XAML, расширения VSIX и пакета NuGet.

// main.cpp : In Visual Studio, create a new Windows Console Application (C++/WinRT), and run it (or run Visual Studio) as administrator.
#include "pch.h"

#include <winrt/Windows.ApplicationModel.h>
#include <winrt/Windows.Management.Deployment.h>
#include <winrt/Windows.Storage.h>
#include <iostream>

using namespace winrt;
using namespace Windows::ApplicationModel;
using namespace Windows::Management::Deployment;
using namespace Windows::Storage;

void DisplayPackageInfo(Windows::ApplicationModel::Package const& package)
{
    try
    {
        std::wcout << L"Name: " << package.Id().Name().c_str() << std::endl;
        std::wcout << L"FullName: " << package.Id().FullName().c_str() << std::endl;
        std::wcout << L"Version: " << package.Id().Version().Major << "." << package.Id().Version().Minor << "." << package.Id().Version().Build << "." << package.Id().Version().Revision << std::endl;
        std::wcout << L"Publisher: " << package.Id().Publisher().c_str() << std::endl;
        std::wcout << L"PublisherId: " << package.Id().PublisherId().c_str() << std::endl;
        std::wcout << L"Installed Location: " << package.InstalledLocation().Path().c_str() << std::endl;
        std::wcout << L"IsFramework: " << (package.IsFramework() ? L"True" : L"False") << std::endl;
    }
    catch (winrt::hresult_error const& ex)
    {
        std::wcout << ex.message().c_str() << std::endl;
    }
}

int wmain()
{
    winrt::init_apartment();

    bool noPackagesFound{ true };
    for (auto const& package : PackageManager{}.FindPackages())
    {
        DisplayPackageInfo(package);
        noPackagesFound = false;
    }

    if (noPackagesFound)
    {
        std::wcout << L"No packages were found." << std::endl;
    }

    return 0;
}
using namespace Windows::Management::Deployment;

[STAThread]
int __cdecl main(Platform::Array<String^>^ args)
{
    PackageManager^ packageManager = ref new PackageManager();

    IIterable<Windows::ApplicationModel::Package^>^ packages = packageManager->FindPackages(); 

    int packageCount = 0;
    std::for_each(Windows::Foundation::Collections::begin(packages), Windows::Foundation::Collections::end(packages), 
    [&](Windows::ApplicationModel::Package^ package) 
    {
        DisplayPackageInfo(package);

        packageCount += 1; 
    });

    if ( packageCount < 1 )
    {
        wcout << L"No packages were found." << endl;
    }

    return 0;
}

void DisplayPackageInfo(Windows::ApplicationModel::Package^ package)
{
    wcout << L"Name: " << package->Id->Name->Data() << endl;
    wcout << L"FullName: " << package->Id->FullName->Data() << endl;
    wcout << L"Version: " << package->Id->Version.Major << "." << 
        package->Id->Version.Minor << "." << package->Id->Version.Build << 
        "." << package->Id->Version.Revision << endl;
    wcout << L"Publisher: " << package->Id->Publisher->Data() << endl;
    wcout << L"PublisherId: " << package->Id->PublisherId->Data() << endl;
    wcout << L"Installed Location: " << package->InstalledLocation->Path->Data() << endl;
    wcout << L"IsFramework: " << (package->IsFramework ? L"True" : L"False") << endl;
}

Комментарии

Для этого метода требуются права администратора. В противном случае возникает исключение AccessDeniedException .

См. также раздел

Применяется к