PackageManager.RemovePackageAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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.