PackageManager.RemovePackageAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
RemovePackageAsync(String) |
Quita un paquete para el usuario actual de forma asincrónica y recibe mensajes de progreso y estado en la operación de eliminación. Los paquetes de dependencia también se quitan para el usuario si ningún otro paquete instalado para el usuario depende de ellos. |
RemovePackageAsync(String, RemovalOptions) |
Quita un paquete para el usuario actual de forma asincrónica y recibe mensajes de progreso y estado en la operación de eliminación. Los paquetes de dependencia también se quitan para el usuario si ningún otro paquete instalado para el usuario depende de ellos. |
RemovePackageAsync(String)
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)
Parámetros
- packageFullName
-
String
Platform::String
winrt::hstring
Representación de cadena de la identidad del paquete para identificar el paquete que se va a quitar.
Devoluciones
Estado de la solicitud de implementación. DeploymentResult contiene el valor devuelto final de la operación de implementación, una vez completado. DeploymentProgress se puede usar para obtener el porcentaje de finalización durante todo el curso de la operación de implementación.
- Atributos
Ejemplos
Llame al método RemovePackageAsync(String) para desinstalar el paquete de la aplicación. Observe que el nombre completo del paquete en packageFullName procede de un argumento de línea de comandos.
RemovePackageAsync(String) devuelve un objeto que se puede usar para administrar la operación asincrónica. Utilice la propiedad Completed para establecer el delegado. Compruebe la propiedad Status para determinar el estado de la operación de implementación. Si el estado es Error, el ejemplo llama al método GetResults para obtener información de error adicional.
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;
}
Consulta también Compatibilidad de Visual Studio para 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;
}
Comentarios
Para que una llamada a este método sea correcta, el autor de la llamada debe cumplir una de estas condiciones:
- El autor de la llamada se ejecuta en un AppContainer (IL bajo) y tiene la funcionalidad restringida packageManagement .
- El autor de la llamada se ejecuta con IL medio o superior.
- El publicador de la llamada coincide con el publicador del paquete (o volumen) que se va a quitar.
Para obtener descripciones de los términos anteriores y vínculos a más información, consulte Empaquetado, implementación y proceso.
Esta solicitud no se puede cancelar. El nombre completo del paquete es una forma alternativa de la identidad del paquete que es más corta y es adecuada para asignar nombres a objetos como archivos y directorios. Una identidad de paquete se representa mediante el elemento Identity del manifiesto del paquete. Cuando se quita un paquete, se quita para el usuario actual, lo que significa que la carga del paquete continúa existiendo si otros usuarios han instalado el paquete, pero no será accesible para el usuario actual. Si ningún otro usuario tiene instalado el paquete especificado, su carga se quitará del directorio %ProgramFiles%\WindowsApps. Cualquier aplicación asociada al paquete que se va a quitar se apagará automáticamente como parte de la eliminación del paquete.
Consulte también
Se aplica a
RemovePackageAsync(String, RemovalOptions)
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)
Parámetros
- packageFullName
-
String
Platform::String
winrt::hstring
Representación de cadena de la identidad del paquete para identificar el paquete que se va a quitar.
- removalOptions
- RemovalOptions
Valor con tipo RemovalOptions que modifica la operación de eliminación.
Devoluciones
Puntero que recibe la dirección de un objeto que implementa la interfaz IAsyncOperationWithProgress .
- Atributos
Comentarios
Para que una llamada a este método sea correcta, el autor de la llamada debe cumplir una de estas condiciones:
- El autor de la llamada se ejecuta en un AppContainer (IL bajo) y tiene la funcionalidad restringida packageManagement .
- El autor de la llamada se ejecuta con IL medio o superior.
- El publicador de la llamada coincide con el publicador del paquete (o volumen) que se va a quitar.
Para obtener descripciones de los términos anteriores y vínculos a más información, consulte Empaquetado, implementación y proceso.