Compartilhar via


PackageManager.AddPackageAsync Método

Definição

Sobrecargas

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Adiciona um Pacote (o pacote main) e seus pacotes de dependência para o usuário atual, usando as opções de implantação especificadas.

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

Adiciona um Pacote (o pacote main) e seus pacotes de dependência ao volume especificado para o usuário atual, usando as opções de implantação especificadas.

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

Adiciona um Pacote e seus pacotes de dependência ao volume especificado para o usuário atual, usando as opções de implantação especificadas.

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

Adiciona um Pacote (o pacote main) e seus pacotes de dependência para o usuário atual, usando as opções de implantação especificadas.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Adiciona um Pacote (o pacote main) e seus pacotes de dependência para o usuário atual, usando as opções de implantação especificadas.

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)

Parâmetros

packageUri
Uri Uri

O Uri do pacote a ser adicionado. O URI deve seguir o esquema de URI de arquivo (file://), pois os únicos esquemas de URI com suporte são caminhos de arquivo locais e caminhos de rede local.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Os Uris dos pacotes de dependência a serem adicionados. Se não houver pacotes de dependência ou se os pacotes de dependência já estiverem registrados, esse parâmetro poderá ser nulo.

deploymentOptions
DeploymentOptions

Uma combinação bit a bit de valores de enumeração da enumeração DeploymentOptions . ForceApplicationShutdown e None são as únicas opções válidas para esse método. Especificar qualquer outra opção resulta em um valor retornado E_INVALIDARG.

Retornos

O status da solicitação de implantação. O DeploymentResult contém o valor final retornado da operação de implantação, depois que ela é concluída. O DeploymentProgress pode ser usado para obter o percentual de conclusão durante todo o curso da operação de implantação.

Atributos

Requisitos do Windows

Funcionalidades do aplicativo
packageManagement

Exemplos

O exemplo a seguir usa o método PackageManager.AddPackageAsync para instalar um pacote que não tem dependências ou cujas dependências já estão instaladas. Observe que o caminho do pacote main é passado como um argumento no exemplo. AddPackageAsync retorna um objeto que pode ser usado para gerenciar a operação assíncrona. O exemplo usa a propriedade Completed para definir o delegado e verifica a propriedade Status para determinar o status da operação de implantação. Se o status for Error, o exemplo chamará o método GetResults para obter informações de erro adicionais.

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;
}

Confira também Suporte do Visual Studio para C++/WinRT.

// 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;
}

Confira também

Aplica-se a

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

Adiciona um Pacote (o pacote main) e seus pacotes de dependência ao volume especificado para o usuário atual, usando as opções de implantação especificadas.

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)

Parâmetros

packageUri
Uri Uri

O Uri do pacote a ser adicionado. O URI deve seguir o esquema de URI de arquivo (file://), pois os únicos esquemas de URI com suporte são caminhos de arquivo locais e caminhos de rede local.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Os Uris dos pacotes de dependência a serem adicionados. Se não houver pacotes de dependência ou se os pacotes de dependência já estiverem registrados, esse parâmetro poderá ser nulo.

deploymentOptions
DeploymentOptions

Uma combinação bit a bit de valores de enumeração da enumeração DeploymentOptions . ForceApplicationShutdown e None são as únicas opções válidas para esse método. Especificar qualquer outra opção resulta em um valor retornado E_INVALIDARG.

targetVolume
PackageVolume

O volume ao qual o pacote é adicionado.

Retornos

O status da solicitação de implantação. O DeploymentResult contém o valor final retornado da operação de implantação, depois que ela é concluída. O DeploymentProgress pode ser usado para obter o percentual de conclusão durante todo o curso da operação de implantação.

Atributos

Requisitos do Windows

Funcionalidades do aplicativo
packageManagement

Confira também

Aplica-se a

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

Adiciona um Pacote e seus pacotes de dependência ao volume especificado para o usuário atual, usando as opções de implantação especificadas.

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)

Parâmetros

packageUri
Uri Uri

O Uri do pacote de origem a ser adicionado. O URI deve seguir o esquema de URI de arquivo (file://), pois os únicos esquemas de URI com suporte são caminhos de arquivo locais e caminhos de rede local.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Os Uris dos pacotes de dependência a serem adicionados. Se não houver pacotes de dependência ou se os pacotes de dependência já estiverem registrados, esse parâmetro poderá ser nulo.

deploymentOptions
DeploymentOptions

Uma combinação bit a bit de valores de enumeração da enumeração DeploymentOptions . ForceApplicationShutdown e None são as únicas opções válidas para esse método. Especificar qualquer outra opção resulta em um valor retornado E_INVALIDARG.

targetVolume
PackageVolume

O volume ao qual o pacote é adicionado.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Os nomes de família de pacotes do pacote main pacote a ser registrado.

externalPackageUris

IIterable<Uri>

IEnumerable<Uri>

Os URIs dos outros pacotes no pacote main a serem registrados.

Retornos

O percentual deploymentProgress de conclusão durante todo o curso da operação de implantação.

Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 Creators Update (introduzida na 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v4.0)

Confira também

Aplica-se a

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

Adiciona um Pacote (o pacote main) e seus pacotes de dependência para o usuário atual, usando as opções de implantação especificadas.

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)

Parâmetros

packageUri
Uri Uri

O URI do pacote a ser adicionado. O URI deve seguir o esquema de URI de arquivo (file://), pois os únicos esquemas de URI com suporte são caminhos de arquivo locais e caminhos de rede local.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Os URIs das dependências de estrutura a serem adicionadas. Se não houver pacotes de dependência ou se os pacotes de dependência já estiverem registrados, esse parâmetro poderá ser nulo.

options
DeploymentOptions

As opções de implantação para o pacote.

targetVolume
PackageVolume

O volume ao qual o pacote é adicionado.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Os nomes de família de pacotes do pacote main pacote a ser registrado.

packageUrisToInstall

IIterable<Uri>

IEnumerable<Uri>

Os URIs de pacotes opcionais a serem instalados com o pacote main aplicativo.

relatedPackageUris

IIterable<Uri>

IEnumerable<Uri>

URIs de pacotes opcionais relacionados a serem atualizados para a mesma versão que os novos pacotes opcionais.

Retornos

O percentual deploymentProgress de conclusão durante todo o curso da operação de implantação.

Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 Fall Creators Update (introduzida na 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v5.0)

Confira também

Aplica-se a