PackageManager.RemovePackageAsync Método

Definición

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)

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.

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)

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.

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.

Consulte también

Se aplica a