PackageManager.RemovePackageAsync Méthode
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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. |
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 à
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.