다음을 통해 공유


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 지원을 참조하세요.

// 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 이 throw됩니다.

추가 정보

적용 대상