Partager via


PackageManager.RemovePackageAsync Méthode

Définition

Surcharges

RemovePackageAsync(String)

Supprime un package pour l’utilisateur actuel de manière asynchrone et reçoit des messages de progression et de status sur l’opération de suppression. Les packages de dépendances sont également supprimés pour l’utilisateur si aucun autre package installé pour l’utilisateur ne dépend d’eux.

RemovePackageAsync(String, RemovalOptions)

Supprime un package pour l’utilisateur actuel de manière asynchrone et reçoit des messages de progression et de status sur l’opération de suppression. Les packages de dépendances sont également supprimés pour l’utilisateur si aucun autre package installé pour l’utilisateur ne dépend d’eux.

RemovePackageAsync(String)

Supprime un package pour l’utilisateur actuel de manière asynchrone et reçoit des messages de progression et de status sur l’opération de suppression. Les packages de dépendances sont également supprimés pour l’utilisateur si aucun autre package installé pour l’utilisateur ne dépend d’eux.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ RemovePackageAsync(Platform::String ^ packageFullName) = RemovePackageAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RemovePackageAsync(winrt::hstring const& packageFullName);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> RemovePackageAsync(string packageFullName);
function removePackageAsync(packageFullName)
Public Function RemovePackageAsync (packageFullName As String) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Paramètres

packageFullName
String

Platform::String

winrt::hstring

Représentation sous forme de chaîne de l’identité du package pour identifier le package à supprimer.

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

Exemples

Appelez la méthode RemovePackageAsync(String) pour désinstaller le package d’application. Notez que le nom complet du package dans packageFullName provient d’un argument de ligne de commande.

RemovePackageAsync(String) retourne un objet qui peut être utilisé pour gérer l’opération asynchrone. Utilisez la propriété Completed pour définir le délégué. Vérifiez la propriété Status pour déterminer le 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;

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

    PackageManager packageManager = new Windows.Management.Deployment.PackageManager();

    IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> deploymentOperation = 
        packageManager.RemovePackageAsync(inputPackageFullName);
    // 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("Removal canceled");
    }
    else if (deploymentOperation.Status == AsyncStatus.Completed)
    {
        Console.WriteLine("Removal succeeded");
    }
    else
    {
        returnValue = 1;
        Console.WriteLine("Removal 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 inputPackageFullName{ argv[1] };
    PackageManager packageManager;

    auto deploymentOperation{ packageManager.RemovePackageAsync(inputPackageFullName) };
    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"Removal canceled" << std::endl;
    }
    else if (deploymentOperation.Status() == AsyncStatus::Completed)
    {
        std::wcout << L"Removal succeeded" << std::endl;
    }
    else
    {
        std::wcout << L"Removal status unknown" << std::endl;
        returnValue = 1;
    }
    return returnValue;
}
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Management::Deployment;

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

    PackageManager^ packageManager = ref new PackageManager();

    auto deploymentOperation = packageManager->RemovePackageAsync(inputPackageFullName);

    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"Removal Error: " << deploymentOperation->ErrorCode.Value << endl;
        wcout << L"Detailed Error Text: " << deploymentResult->ErrorText->Data() << endl;
        returnValue = 1;
    }
    else if ( deploymentOperation->Status == AsyncStatus::Canceled )
    {
        wcout << L"Removal Canceled" << endl;
    }
    else if ( deploymentOperation->Status == AsyncStatus::Completed )
    {
        wcout << L"Removal succeeded!" << endl;
    }
    else
    {
        wcout << L"Removal status unknown" << endl;
        returnValue = 1;
    }

    return returnValue;
}

Remarques

Pour qu’un appel à cette méthode réussisse, l’appelant doit remplir l’une des conditions suivantes :

  • L’appelant s’exécute dans un AppContainer (Low IL) et dispose de la fonctionnalité restreinte packageManagement .
  • L’appelant s’exécute avec l’IL moyen ou supérieur.
  • L’éditeur de l’appelant correspond à l’éditeur du package (ou du volume) supprimé.

Pour obtenir une description des termes ci-dessus et des liens vers plus d’informations, consultez Empaquetage, déploiement et processus.

Cette demande ne peut pas être annulée. Le nom complet du package est une autre forme de l’identité du package qui est plus courte et convient pour nommer des objets tels que des fichiers et des répertoires. Une identité de package est représentée par l’élément Identity du manifeste du package. Lorsqu’un package est supprimé, il est supprimé pour l’utilisateur actuel, ce qui signifie que la charge utile du package continue d’exister si d’autres utilisateurs ont installé le package, mais qu’elle ne sera pas accessible à l’utilisateur actuel. Si aucun autre utilisateur n’a installé le package spécifié, sa charge utile est supprimée du répertoire %ProgramFiles%\WindowsApps. Toute application associée au package en cours de suppression s’arrête automatiquement dans le cadre de la suppression du package.

Voir aussi

S’applique à

RemovePackageAsync(String, RemovalOptions)

Supprime un package pour l’utilisateur actuel de manière asynchrone et reçoit des messages de progression et de status sur l’opération de suppression. Les packages de dépendances sont également supprimés pour l’utilisateur si aucun autre package installé pour l’utilisateur ne dépend d’eux.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ RemovePackageAsync(Platform::String ^ packageFullName, RemovalOptions removalOptions) = RemovePackageAsync;
/// [Windows.Foundation.Metadata.Overload("RemovePackageWithOptionsAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RemovePackageAsync(winrt::hstring const& packageFullName, RemovalOptions const& removalOptions);
[Windows.Foundation.Metadata.Overload("RemovePackageWithOptionsAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> RemovePackageAsync(string packageFullName, RemovalOptions removalOptions);
function removePackageAsync(packageFullName, removalOptions)
Public Function RemovePackageAsync (packageFullName As String, removalOptions As RemovalOptions) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Paramètres

packageFullName
String

Platform::String

winrt::hstring

Représentation sous forme de chaîne de l’identité du package pour identifier le package à supprimer.

removalOptions
RemovalOptions

Valeur de type RemovalOptions qui modifie l’opération de suppression.

Retours

Pointeur qui reçoit l’adresse d’un objet qui implémente l’interface IAsyncOperationWithProgress .

Attributs

Remarques

Pour qu’un appel à cette méthode réussisse, l’appelant doit remplir l’une des conditions suivantes :

  • L’appelant s’exécute dans un AppContainer (Low IL) et dispose de la fonctionnalité restreinte packageManagement .
  • L’appelant s’exécute avec l’IL moyen ou supérieur.
  • L’éditeur de l’appelant correspond à l’éditeur du package (ou du volume) supprimé.

Pour obtenir une description des termes ci-dessus et des liens vers plus d’informations, consultez Empaquetage, déploiement et processus.

Voir aussi

S’applique à