Freigeben über


PackageManager.RemovePackageAsync Methode

Definition

Überlädt

RemovePackageAsync(String)

Entfernt ein Paket für den aktuellen Benutzer asynchron und empfängt Status- und status Meldungen zum Entfernungsvorgang. Abhängigkeitspakete werden auch für den Benutzer entfernt, wenn keine anderen für den Benutzer installierten Pakete von ihnen abhängig sind.

RemovePackageAsync(String, RemovalOptions)

Entfernt ein Paket für den aktuellen Benutzer asynchron und empfängt Status- und status Meldungen zum Entfernungsvorgang. Abhängigkeitspakete werden auch für den Benutzer entfernt, wenn keine anderen für den Benutzer installierten Pakete von ihnen abhängig sind.

RemovePackageAsync(String)

Entfernt ein Paket für den aktuellen Benutzer asynchron und empfängt Status- und status Meldungen zum Entfernungsvorgang. Abhängigkeitspakete werden auch für den Benutzer entfernt, wenn keine anderen für den Benutzer installierten Pakete von ihnen abhängig sind.

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)

Parameter

packageFullName
String

Platform::String

winrt::hstring

Eine Zeichenfolgendarstellung der Paketidentität, um das zu entfernende Paket zu identifizieren.

Gibt zurück

Der status der Bereitstellungsanforderung. DeploymentResult enthält den letzten zurückgegebenen Wert des Bereitstellungsvorgangs, sobald er abgeschlossen ist. Der DeploymentProgress kann verwendet werden, um den Prozentsatz der Fertigstellung über den gesamten Verlauf des Bereitstellungsvorgangs abzurufen.

Attribute

Beispiele

Rufen Sie die RemovePackageAsync(String)-Methode auf, um das App-Paket zu deinstallieren. Beachten Sie, dass der vollständige Paketname in packageFullName von einem Befehlszeilenargument stammt.

RemovePackageAsync(String) gibt ein Objekt zurück, das zum Verwalten des asynchronen Vorgangs verwendet werden kann. Verwenden Sie die Completed-Eigenschaft , um den Delegaten festzulegen. Überprüfen Sie die Status-Eigenschaft, um die status des Bereitstellungsvorgangs zu ermitteln. Wenn der status Fehler ist, ruft das Beispiel die GetResults-Methode auf, um zusätzliche Fehlerinformationen abzurufen.

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

Weitere Informationen finden Sie auch unter Visual Studio-Unterstützung für 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;
}

Hinweise

Damit ein Aufruf dieser Methode erfolgreich ist, muss der Aufrufer eine der folgenden Bedingungen erfüllen:

  • Der Aufrufer wird in einem AppContainer (Low IL) ausgeführt und verfügt über die eingeschränkte PackageManagement-Funktion .
  • Der Aufrufer wird mit mittlerer IL oder höher ausgeführt.
  • Der Herausgeber des Aufrufers stimmt mit dem Herausgeber des zu entfernenden Pakets (oder Volumes) überein.

Beschreibungen der obigen Begriffe und Links zu weiteren Informationen finden Sie unter Verpackung, Bereitstellung und Prozess.

Diese Anforderung kann nicht abgebrochen werden. Der vollständige Paketname ist eine alternative Form der Paketidentität, die kürzer ist und zum Benennen von Objekten wie Dateien und Verzeichnissen geeignet ist. Eine Paketidentität wird durch das Identity-Element des Paketmanifests dargestellt. Wenn ein Paket entfernt wird, wird es für den aktuellen Benutzer entfernt, was bedeutet, dass die Paketnutzlast weiterhin vorhanden ist, wenn andere Benutzer das Paket installiert haben, aber für den aktuellen Benutzer nicht darauf zugreifen kann. Wenn das angegebene Paket von keinem anderen Benutzer installiert ist, wird dessen Nutzlast aus dem Verzeichnis %ProgramFiles%\WindowsApps entfernt. Jede App, die dem zu entfernenden Paket zugeordnet ist, wird im Rahmen der Paketentfernung automatisch heruntergefahren.

Weitere Informationen

Gilt für:

RemovePackageAsync(String, RemovalOptions)

Entfernt ein Paket für den aktuellen Benutzer asynchron und empfängt Status- und status Meldungen zum Entfernungsvorgang. Abhängigkeitspakete werden auch für den Benutzer entfernt, wenn keine anderen für den Benutzer installierten Pakete von ihnen abhängig sind.

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)

Parameter

packageFullName
String

Platform::String

winrt::hstring

Eine Zeichenfolgendarstellung der Paketidentität, um das zu entfernende Paket zu identifizieren.

removalOptions
RemovalOptions

Ein removalOptions-typisierter Wert, der den Entfernungsvorgang ändert.

Gibt zurück

Ein Zeiger, der die Adresse eines Objekts empfängt, das die IAsyncOperationWithProgress-Schnittstelle implementiert.

Attribute

Hinweise

Damit ein Aufruf dieser Methode erfolgreich ist, muss der Aufrufer eine der folgenden Bedingungen erfüllen:

  • Der Aufrufer wird in einem AppContainer (Low IL) ausgeführt und verfügt über die eingeschränkte PackageManagement-Funktion .
  • Der Aufrufer wird mit mittlerer IL oder höher ausgeführt.
  • Der Herausgeber des Aufrufers stimmt mit dem Herausgeber des zu entfernenden Pakets (oder Volumes) überein.

Beschreibungen der obigen Begriffe und Links zu weiteren Informationen finden Sie unter Verpackung, Bereitstellung und Prozess.

Weitere Informationen

Gilt für: