Поделиться через


PackageManager.AddPackageAsync Метод

Определение

Перегрузки

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Добавляет пакет (пакет main) и его пакеты зависимостей для текущего пользователя, используя указанные параметры развертывания.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)

Добавляет пакет (пакет main) и его пакеты зависимостей в указанный том для текущего пользователя, используя указанные параметры развертывания.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>)

Добавляет пакет и его пакеты зависимостей в указанный том для текущего пользователя, используя указанные параметры развертывания.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>, IIterable<Uri>)

Добавляет пакет (пакет main) и его пакеты зависимостей для текущего пользователя, используя указанные параметры развертывания.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Добавляет пакет (пакет main) и его пакеты зависимостей для текущего пользователя, используя указанные параметры развертывания.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageAsync")]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions);
[Windows.Foundation.Metadata.Overload("AddPackageAsync")]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Параметры

packageUri
Uri Uri

Универсальный код ресурса (URI) добавляемого пакета. URI должен соответствовать схеме URI файла (file://), так как поддерживаются только локальные пути к файлам и локальные сетевые пути.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Универсальные коды ресурса (URI) добавляемых пакетов зависимостей. Если пакетов зависимостей нет или пакеты зависимостей уже зарегистрированы, этот параметр может иметь значение NULL.

deploymentOptions
DeploymentOptions

Побитовая комбинация значений перечисления из перечисления DeploymentOptions . ForceApplicationShutdown и None являются единственными допустимыми параметрами для этого метода. Указание любого другого параметра приводит к E_INVALIDARG возвращаемому значению.

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

Состояние запроса на развертывание. DeploymentResult содержит окончательное возвращаемое значение операции развертывания после ее завершения. DeploymentProgress можно использовать для получения процента завершения в течение всего процесса развертывания.

Атрибуты

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

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

Примеры

В следующем примере используется метод PackageManager.AddPackageAsync для установки пакета без зависимостей или уже установленных зависимостей. Обратите внимание, что путь к пакету main передается в качестве аргумента в примере. AddPackageAsync возвращает объект, который можно использовать для управления асинхронной операцией. В примере используется свойство Completed для задания делегата и проверяется свойство Status для определения состояния операции развертывания. Если состояние — Error, в примере вызывается метод GetResults для получения дополнительных сведений об ошибке.

using Windows.Foundation;
using Windows.Management.Deployment;

public static int Main(string[] args)
{
    string inputPackageUri = args[0];
    int returnValue=0;

    Uri packageUri = new Uri(inputPackageUri);            

    PackageManager packageManager = new PackageManager();

    IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> deploymentOperation = 
        packageManager.AddPackageAsync(
            packageUri, 
            null, 
            DeploymentOptions.None);

    // This event is signaled when the operation completes
    ManualResetEvent opCompletedEvent = new ManualResetEvent(false); 

    // Define the delegate using a statement lambda
    deploymentOperation.Completed = (depProgress, status) => { opCompletedEvent.Set(); };

    // Wait until the operation completes
    opCompletedEvent.WaitOne();

    // Check the status of the operation
    if (deploymentOperation.Status == AsyncStatus.Error)
    {
        DeploymentResult deploymentResult = deploymentOperation.GetResults();
        Console.WriteLine("Error code: {0}", deploymentOperation.ErrorCode);
        Console.WriteLine("Error text: {0}", deploymentResult.ErrorText);
        returnValue = 1;
    }
    else if (deploymentOperation.Status == AsyncStatus.Canceled)
    {
        Console.WriteLine("Installation canceled");
    }
    else if (deploymentOperation.Status == AsyncStatus.Completed)
    {
        Console.WriteLine("Installation succeeded");
    }
    else
    {
        returnValue = 1;
        Console.WriteLine("Installation status unknown");
    }

    return returnValue;
}

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

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

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

using namespace winrt;
using namespace Windows::Foundation;
using namespace Windows::Management::Deployment;

int wmain(int /* argc */, wchar_t *argv[], wchar_t * /* envp[] */)
{
    winrt::init_apartment();

    int returnValue{ 0 };

    std::wstring packageUriString{ argv[1] };
    Uri packageUri{ packageUriString };
    PackageManager packageManager;

    auto deploymentOperation{ packageManager.AddPackageAsync(packageUri, nullptr, DeploymentOptions::None) };
    deploymentOperation.get();

    // Check the status of the operation
    if (deploymentOperation.Status() == AsyncStatus::Error)
    {
        auto deploymentResult{ deploymentOperation.GetResults() };
        std::wcout << L"Error code: " << deploymentOperation.ErrorCode() << std::endl;
        std::wcout << L"Error text: " << deploymentResult.ErrorText().c_str() << std::endl;
        returnValue = 1;
    }
    else if (deploymentOperation.Status() == AsyncStatus::Canceled)
    {
        std::wcout << L"Installation canceled" << std::endl;
    }
    else if (deploymentOperation.Status() == AsyncStatus::Completed)
    {
        std::wcout << L"Installation succeeded" << std::endl;
    }
    else
    {
        std::wcout << L"Installation status unknown" << std::endl;
        returnValue = 1;
    }
    return returnValue;
}
using namespace Windows::Foundation;
using namespace Windows::Management::Deployment;

[STAThread]
int __cdecl main(Platform::Array<String^>^ args)
{  
    String^ inputPackageUri = args[1];
    int returnValue=0;

    Uri^ packageUri = ref new Uri(inputPackageUri);

    PackageManager^ packageManager = ref new PackageManager();

    auto deploymentOperation = packageManager->AddPackageAsync(
        packageUri, 
        nullptr, 
        DeploymentOptions::None);

    DeploymentResult^ deploymentOperationResult;

    // This event is signaled when the operation completes
    opCompletedEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

    // Define the delegate
    deploymentOperation->Completed = 
        ref new AsyncOperationWithProgressCompletedHandler<DeploymentResult^, DeploymentProgress>(
        [&](IAsyncOperationWithProgress<DeploymentResult^, DeploymentProgress>^ operation, AsyncStatus)
    {
        SetEvent(opCompletedEvent);
    });

    // Wait until the operation completes
    WaitForSingleObject(opCompletedEvent, INFINITE);

    // Check the status of the operation
    if ( deploymentOperation->Status == AsyncStatus::Error )
    {
        auto deploymentResult = deploymentOperation->GetResults();
        wcout << L"Error code: " << deploymentOperation->ErrorCode.Value << endl;
        wcout << L"Error text: " << deploymentResult->ErrorText->Data() << endl;
        returnValue = 1;
    }
    else if ( deploymentOperation->Status == AsyncStatus::Canceled )
    {
        wcout << L"Installation canceled" << endl;
    }
    else if ( deploymentOperation->Status == AsyncStatus::Completed )
    {
        wcout << L"Installation succeeded" << endl;
    }
    else
    {
        wcout << L"Installation status unknown" << endl;
        returnValue = 1;
    }
    return returnValue;
}

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

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

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)

Добавляет пакет (пакет main) и его пакеты зависимостей в указанный том для текущего пользователя, используя указанные параметры развертывания.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume ^ targetVolume) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions, PackageVolume const& targetVolume);
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions, targetVolume)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions, targetVolume As PackageVolume) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Параметры

packageUri
Uri Uri

Универсальный код ресурса (URI) добавляемого пакета. URI должен соответствовать схеме URI файла (file://), так как поддерживаются только локальные пути к файлам и локальные сетевые пути.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Универсальные коды ресурса (URI) добавляемых пакетов зависимостей. Если пакетов зависимостей нет или пакеты зависимостей уже зарегистрированы, этот параметр может иметь значение NULL.

deploymentOptions
DeploymentOptions

Побитовая комбинация значений перечисления из перечисления DeploymentOptions . ForceApplicationShutdown и None являются единственными допустимыми параметрами для этого метода. Указание любого другого параметра приводит к E_INVALIDARG возвращаемому значению.

targetVolume
PackageVolume

Том, в который добавляется пакет.

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

Состояние запроса на развертывание. DeploymentResult содержит окончательное возвращаемое значение операции развертывания после ее завершения. DeploymentProgress можно использовать для получения процента завершения в течение всего процесса развертывания.

Атрибуты

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

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

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

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

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>)

Добавляет пакет и его пакеты зависимостей в указанный том для текущего пользователя, используя указанные параметры развертывания.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume ^ targetVolume, IIterable<Platform::String ^> ^ optionalPackageFamilyNames, IIterable<Uri ^> ^ externalPackageUris) = AddPackageAsync;
/// [Windows.Foundation.Metadata.DefaultOverload]
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndOptionalPackagesAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions, PackageVolume const& targetVolume, IIterable<winrt::hstring> const& optionalPackageFamilyNames, IIterable<Uri> const& externalPackageUris);
[Windows.Foundation.Metadata.DefaultOverload]
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndOptionalPackagesAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume, IEnumerable<string> optionalPackageFamilyNames, IEnumerable<System.Uri> externalPackageUris);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions, targetVolume, optionalPackageFamilyNames, externalPackageUris)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions, targetVolume As PackageVolume, optionalPackageFamilyNames As IEnumerable(Of String), externalPackageUris As IEnumerable(Of Uri)) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Параметры

packageUri
Uri Uri

Универсальный код ресурса (URI) добавляемого исходного пакета. URI должен соответствовать схеме URI файла (file://), так как поддерживаются только локальные пути к файлам и локальные сетевые пути.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Универсальные коды ресурса (URI) добавляемых пакетов зависимостей. Если пакетов зависимостей нет или пакеты зависимостей уже зарегистрированы, этот параметр может иметь значение NULL.

deploymentOptions
DeploymentOptions

Побитовая комбинация значений перечисления из перечисления DeploymentOptions . ForceApplicationShutdown и None являются единственными допустимыми параметрами для этого метода. Указание любого другого параметра приводит к E_INVALIDARG возвращаемому значению.

targetVolume
PackageVolume

Том, в который добавляется пакет.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Имена семейства пакетов из пакета main для регистрации.

externalPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI других пакетов в пакете main для регистрации.

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

Процент завершения DeploymentProgress в течение всего процесса развертывания.

Атрибуты

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

Семейство устройств
Windows 10 Creators Update (появилось в 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v4.0)

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

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

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>, IIterable<Uri>)

Добавляет пакет (пакет main) и его пакеты зависимостей для текущего пользователя, используя указанные параметры развертывания.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions options, PackageVolume ^ targetVolume, IIterable<Platform::String ^> ^ optionalPackageFamilyNames, IIterable<Uri ^> ^ packageUrisToInstall, IIterable<Uri ^> ^ relatedPackageUris) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndRelatedSetAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& options, PackageVolume const& targetVolume, IIterable<winrt::hstring> const& optionalPackageFamilyNames, IIterable<Uri> const& packageUrisToInstall, IIterable<Uri> const& relatedPackageUris);
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndRelatedSetAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions options, PackageVolume targetVolume, IEnumerable<string> optionalPackageFamilyNames, IEnumerable<System.Uri> packageUrisToInstall, IEnumerable<System.Uri> relatedPackageUris);
function addPackageAsync(packageUri, dependencyPackageUris, options, targetVolume, optionalPackageFamilyNames, packageUrisToInstall, relatedPackageUris)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), options As DeploymentOptions, targetVolume As PackageVolume, optionalPackageFamilyNames As IEnumerable(Of String), packageUrisToInstall As IEnumerable(Of Uri), relatedPackageUris As IEnumerable(Of Uri)) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Параметры

packageUri
Uri Uri

Универсальный код ресурса (URI) добавляемого пакета. URI должен соответствовать схеме URI файла (file://), так как поддерживаются только локальные пути к файлам и локальные сетевые пути.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI добавляемых зависимостей платформы. Если пакетов зависимостей нет или пакеты зависимостей уже зарегистрированы, этот параметр может иметь значение NULL.

options
DeploymentOptions

Параметры развертывания пакета.

targetVolume
PackageVolume

Том, в который добавляется пакет.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Имена семейства пакетов из пакета main для регистрации.

packageUrisToInstall

IIterable<Uri>

IEnumerable<Uri>

URI необязательных пакетов, устанавливаемых вместе с пакетом приложения main.

relatedPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI связанных необязательных пакетов, которые должны быть обновлены до той же версии, что и новые необязательные пакеты.

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

Процент завершения DeploymentProgress в течение всего процесса развертывания.

Атрибуты

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

Семейство устройств
Windows 10 Fall Creators Update (появилось в 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v5.0)

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

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