Compartir a través de


PackageManager.AddPackageAsync Método

Definición

Sobrecargas

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Agrega un paquete (el paquete principal) y sus paquetes de dependencia para el usuario actual mediante las opciones de implementación especificadas.

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

Agrega un paquete (el paquete principal) y sus paquetes de dependencia al volumen especificado para el usuario actual mediante las opciones de implementación especificadas.

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

Agrega un paquete y sus paquetes de dependencia al volumen especificado para el usuario actual mediante las opciones de implementación especificadas.

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

Agrega un paquete (el paquete principal) y sus paquetes de dependencia para el usuario actual mediante las opciones de implementación especificadas.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Agrega un paquete (el paquete principal) y sus paquetes de dependencia para el usuario actual mediante las opciones de implementación 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

URI del paquete que se va a agregar. El URI debe seguir el esquema de URI de archivo (file://), ya que los únicos esquemas de URI admitidos son rutas de acceso de archivo locales y rutas de red locales.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI de los paquetes de dependencia que se van a agregar. Si no hay ningún paquete de dependencia o si los paquetes de dependencia ya están registrados, este parámetro puede ser NULL.

deploymentOptions
DeploymentOptions

Combinación bit a bit de valores de enumeración de la enumeración DeploymentOptions . ForceApplicationShutdown y None son las únicas opciones válidas para este método. Si se especifica cualquier otra opción, se obtiene un valor devuelto E_INVALIDARG.

Devoluciones

Estado de la solicitud de implementación. DeploymentResult contiene el valor devuelto final de la operación de implementación, una vez completado. DeploymentProgress se puede usar para obtener el porcentaje de finalización durante todo el curso de la operación de implementación.

Atributos

Requisitos de Windows

Características de aplicaciones
packageManagement

Ejemplos

En el ejemplo siguiente se usa el método PackageManager.AddPackageAsync para instalar un paquete que no tiene dependencias o cuyas dependencias ya están instaladas. Tenga en cuenta que la ruta de acceso del paquete principal se pasa como argumento en el ejemplo. AddPackageAsync devuelve un objeto que se puede usar para administrar la operación asincrónica. En el ejemplo se usa la propiedad Completed para establecer el delegado y comprueba la propiedad Status para determinar el estado de la operación de implementación. Si el estado es Error, el ejemplo llama al método GetResults para obtener información de error adicional.

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

Consulta también Compatibilidad de 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;
}

Consulte también

Se aplica a

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

Agrega un paquete (el paquete principal) y sus paquetes de dependencia al volumen especificado para el usuario actual mediante las opciones de implementación 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

URI del paquete que se va a agregar. El URI debe seguir el esquema de URI de archivo (file://), ya que los únicos esquemas de URI admitidos son rutas de acceso de archivo locales y rutas de red locales.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI de los paquetes de dependencia que se van a agregar. Si no hay ningún paquete de dependencia o si los paquetes de dependencia ya están registrados, este parámetro puede ser NULL.

deploymentOptions
DeploymentOptions

Combinación bit a bit de valores de enumeración de la enumeración DeploymentOptions . ForceApplicationShutdown y None son las únicas opciones válidas para este método. Si se especifica cualquier otra opción, se obtiene un valor devuelto E_INVALIDARG.

targetVolume
PackageVolume

Volumen al que se agrega el paquete.

Devoluciones

Estado de la solicitud de implementación. DeploymentResult contiene el valor devuelto final de la operación de implementación, una vez completado. DeploymentProgress se puede usar para obtener el porcentaje de finalización durante todo el curso de la operación de implementación.

Atributos

Requisitos de Windows

Características de aplicaciones
packageManagement

Consulte también

Se aplica a

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

Agrega un paquete y sus paquetes de dependencia al volumen especificado para el usuario actual mediante las opciones de implementación 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

URI del paquete de origen que se va a agregar. El URI debe seguir el esquema de URI de archivo (file://), ya que los únicos esquemas de URI admitidos son rutas de acceso de archivo locales y rutas de red locales.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI de los paquetes de dependencia que se van a agregar. Si no hay ningún paquete de dependencia o si los paquetes de dependencia ya están registrados, este parámetro puede ser NULL.

deploymentOptions
DeploymentOptions

Combinación bit a bit de valores de enumeración de la enumeración DeploymentOptions . ForceApplicationShutdown y None son las únicas opciones válidas para este método. Si se especifica cualquier otra opción, se obtiene un valor devuelto E_INVALIDARG.

targetVolume
PackageVolume

Volumen al que se agrega el paquete.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Los nombres de familia del paquete del paquete principal que se van a registrar.

externalPackageUris

IIterable<Uri>

IEnumerable<Uri>

Los URI de los demás paquetes del paquete principal que se van a registrar.

Devoluciones

Porcentaje deploymentProgress de finalización durante todo el curso de la operación de implementación.

Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 Creators Update (se introdujo en la versión 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v4.0)

Consulte también

Se aplica a

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

Agrega un paquete (el paquete principal) y sus paquetes de dependencia para el usuario actual mediante las opciones de implementación 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

URI del paquete que se va a agregar. El URI debe seguir el esquema de URI de archivo (file://), ya que los únicos esquemas de URI admitidos son rutas de acceso de archivo locales y rutas de red locales.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Los URI de las dependencias del marco que se van a agregar. Si no hay ningún paquete de dependencia o si los paquetes de dependencia ya están registrados, este parámetro puede ser NULL.

options
DeploymentOptions

Las opciones de implementación del paquete.

targetVolume
PackageVolume

Volumen al que se agrega el paquete.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Los nombres de familia del paquete del paquete principal que se van a registrar.

packageUrisToInstall

IIterable<Uri>

IEnumerable<Uri>

Los URI de los paquetes opcionales que se van a instalar con el paquete de aplicación principal.

relatedPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI de paquetes opcionales relacionados que se van a actualizar a la misma versión que los nuevos paquetes opcionales.

Devoluciones

Porcentaje deploymentProgress de finalización durante todo el curso de la operación de implementación.

Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 Fall Creators Update (se introdujo en la versión 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v5.0)

Consulte también

Se aplica a