Partager via


PackageManager.AddPackageAsync Méthode

Définition

Surcharges

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Ajoute un package (le package main) et ses packages de dépendances pour l’utilisateur actuel, à l’aide des options de déploiement spécifiées.

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

Ajoute un package (le package main) et ses packages de dépendances au volume spécifié pour l’utilisateur actuel, à l’aide des options de déploiement spécifiées.

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

Ajoute un package et ses packages de dépendances au volume spécifié pour l’utilisateur actuel, à l’aide des options de déploiement spécifiées.

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

Ajoute un package (le package main) et ses packages de dépendances pour l’utilisateur actuel, à l’aide des options de déploiement spécifiées.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Ajoute un package (le package main) et ses packages de dépendances pour l’utilisateur actuel, à l’aide des options de déploiement spécifiées.

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)

Paramètres

packageUri
Uri Uri

URI du package à ajouter. L’URI doit suivre le schéma d’URI de fichier (file://), car les seuls schémas d’URI pris en charge sont les chemins d’accès de fichiers locaux et les chemins de réseau local.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Uris des packages de dépendances à ajouter. S’il n’existe aucun package de dépendance ou si les packages de dépendances sont déjà inscrits, ce paramètre peut avoir la valeur Null.

deploymentOptions
DeploymentOptions

Combinaison au niveau du bit des valeurs d’énumération de l’énumération DeploymentOptions . ForceApplicationShutdown et None sont les seules options valides pour cette méthode. La spécification d’une autre option entraîne une valeur de retour E_INVALIDARG.

Retours

Status de la demande de déploiement. DeploymentResult contient la valeur finale retournée de l’opération de déploiement, une fois celle-ci terminée. DeploymentProgress peut être utilisé pour obtenir le pourcentage d’achèvement sur l’ensemble de l’opération de déploiement.

Attributs

Configuration requise pour Windows

Fonctionnalités de l’application
packageManagement

Exemples

L’exemple suivant utilise la méthode PackageManager.AddPackageAsync pour installer un package qui n’a aucune dépendance ou dont les dépendances sont déjà installées. Notez que le chemin d’accès du package main est passé en tant qu’argument dans l’exemple. AddPackageAsync retourne un objet qui peut être utilisé pour gérer l’opération asynchrone. L’exemple utilise la propriété Completed pour définir le délégué et vérifie la propriété Status pour déterminer la status de l’opération de déploiement. Si le status est Error, l’exemple appelle la méthode GetResults pour obtenir des informations supplémentaires sur l’erreur.

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

Consultez également Support Visual Studio pour 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;
}

Voir aussi

S’applique à

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

Ajoute un package (le package main) et ses packages de dépendances au volume spécifié pour l’utilisateur actuel, à l’aide des options de déploiement spécifiées.

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)

Paramètres

packageUri
Uri Uri

URI du package à ajouter. L’URI doit suivre le schéma d’URI de fichier (file://), car les seuls schémas d’URI pris en charge sont les chemins d’accès de fichiers locaux et les chemins de réseau local.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Uris des packages de dépendances à ajouter. S’il n’existe aucun package de dépendance ou si les packages de dépendances sont déjà inscrits, ce paramètre peut avoir la valeur Null.

deploymentOptions
DeploymentOptions

Combinaison au niveau du bit des valeurs d’énumération de l’énumération DeploymentOptions . ForceApplicationShutdown et None sont les seules options valides pour cette méthode. La spécification d’une autre option entraîne une valeur de retour E_INVALIDARG.

targetVolume
PackageVolume

Volume auquel le package est ajouté.

Retours

Status de la demande de déploiement. DeploymentResult contient la valeur finale retournée de l’opération de déploiement, une fois celle-ci terminée. DeploymentProgress peut être utilisé pour obtenir le pourcentage d’achèvement sur l’ensemble de l’opération de déploiement.

Attributs

Configuration requise pour Windows

Fonctionnalités de l’application
packageManagement

Voir aussi

S’applique à

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

Ajoute un package et ses packages de dépendances au volume spécifié pour l’utilisateur actuel, à l’aide des options de déploiement spécifiées.

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)

Paramètres

packageUri
Uri Uri

Uri du package source à ajouter. L’URI doit suivre le schéma d’URI de fichier (file://), car les seuls schémas d’URI pris en charge sont les chemins d’accès de fichiers locaux et les chemins de réseau local.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Uris des packages de dépendances à ajouter. S’il n’existe aucun package de dépendance ou si les packages de dépendances sont déjà inscrits, ce paramètre peut avoir la valeur Null.

deploymentOptions
DeploymentOptions

Combinaison au niveau du bit des valeurs d’énumération de l’énumération DeploymentOptions . ForceApplicationShutdown et None sont les seules options valides pour cette méthode. La spécification d’une autre option entraîne une valeur de retour E_INVALIDARG.

targetVolume
PackageVolume

Volume auquel le package est ajouté.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Les noms de famille de package du main bundle à inscrire.

externalPackageUris

IIterable<Uri>

IEnumerable<Uri>

Les URI des autres packages du main bundle à inscrire.

Retours

Pourcentage d’achèvement deploymentProgress sur l’ensemble du cours de l’opération de déploiement.

Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 Creators Update (introduit dans 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v4.0)

Voir aussi

S’applique à

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

Ajoute un package (le package main) et ses packages de dépendances pour l’utilisateur actuel, à l’aide des options de déploiement spécifiées.

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)

Paramètres

packageUri
Uri Uri

URI du package à ajouter. L’URI doit suivre le schéma d’URI de fichier (file://), car les seuls schémas d’URI pris en charge sont les chemins d’accès de fichiers locaux et les chemins de réseau local.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI des dépendances d’infrastructure à ajouter. S’il n’existe aucun package de dépendance ou si les packages de dépendances sont déjà inscrits, ce paramètre peut avoir la valeur Null.

options
DeploymentOptions

Options de déploiement du package.

targetVolume
PackageVolume

Volume auquel le package est ajouté.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Les noms de famille de package du main bundle à inscrire.

packageUrisToInstall

IIterable<Uri>

IEnumerable<Uri>

URI des packages facultatifs à installer avec le package d’application main.

relatedPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI des packages facultatifs associés à mettre à jour vers la même version que les nouveaux packages facultatifs.

Retours

Pourcentage d’achèvement deploymentProgress sur l’ensemble du cours de l’opération de déploiement.

Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 Fall Creators Update (introduit dans 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v5.0)

Voir aussi

S’applique à