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()
- FindPackages(String)
- Пакет
- Пример перечисления пакетов приложений по имени и издателю
Применяется к
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 .