Condividi tramite


PackageManager.RemovePackageAsync Metodo

Definizione

Overload

RemovePackageAsync(String)

Rimuove un pacchetto per l'utente corrente in modo asincrono e riceve i messaggi di stato e stato per l'operazione di rimozione. I pacchetti di dipendenza vengono rimossi anche per l'utente se nessun altro pacchetto installato per l'utente dipende da essi.

RemovePackageAsync(String, RemovalOptions)

Rimuove un pacchetto per l'utente corrente in modo asincrono e riceve i messaggi di stato e stato per l'operazione di rimozione. I pacchetti di dipendenza vengono rimossi anche per l'utente se nessun altro pacchetto installato per l'utente dipende da essi.

RemovePackageAsync(String)

Rimuove un pacchetto per l'utente corrente in modo asincrono e riceve i messaggi di stato e stato per l'operazione di rimozione. I pacchetti di dipendenza vengono rimossi anche per l'utente se nessun altro pacchetto installato per l'utente dipende da essi.

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)

Parametri

packageFullName
String

Platform::String

winrt::hstring

Rappresentazione di stringa dell'identità del pacchetto per identificare il pacchetto da rimuovere.

Restituisce

Stato della richiesta di distribuzione. DeploymentResult contiene il valore finale restituito dell'operazione di distribuzione al termine dell'operazione di distribuzione. DeploymentProgress può essere usato per ottenere la percentuale di completamento nell'intero corso dell'operazione di distribuzione.

Attributi

Esempio

Chiamare il metodo RemovePackageAsync(String) per disinstallare il pacchetto dell'app. Si noti che il nome completo del pacchetto in packageFullName proviene da un argomento della riga di comando.

RemovePackageAsync(String) restituisce un oggetto che può essere usato per gestire l'operazione asincrona. Utilizzare la proprietà Completed per impostare il delegato. Controllare la proprietà Status per determinare lo stato dell'operazione di distribuzione. Se lo stato è Error, nell'esempio viene chiamato il metodo GetResults per ottenere informazioni aggiuntive sull'errore.

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

Vedere anche Supporto di Visual Studio per 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;
}

Commenti

Affinché una chiamata a questo metodo venga eseguita correttamente, il chiamante deve soddisfare una di queste condizioni:

  • Il chiamante è in esecuzione in un AppContainer (Low IL) e ha la funzionalità con restrizioni packageManagement .
  • Il chiamante è in esecuzione con media IL o versione successiva.
  • Il server di pubblicazione del chiamante corrisponde all'editore del pacchetto (o del volume) da rimuovere.

Per le descrizioni dei termini precedenti e collegamenti ad altre informazioni, vedi Creazione di pacchetti, distribuzione e processo.

Questa richiesta non può essere annullata. Il nome completo del pacchetto è una forma alternativa dell'identità del pacchetto più breve ed è adatta per la denominazione di oggetti, ad esempio file e directory. Un'identità del pacchetto è rappresentata dall'elemento Identity del manifesto del pacchetto. Quando un pacchetto viene rimosso, viene rimosso per l'utente corrente, il che significa che il payload del pacchetto continua a esistere se altri utenti hanno installato il pacchetto, ma non saranno accessibili all'utente corrente. Se non è installato alcun altro utente, il relativo payload verrà rimosso dalla directory %ProgramFiles%\WindowsApps. Qualsiasi app associata al pacchetto da rimuovere verrà arrestata automaticamente durante la rimozione del pacchetto.

Vedi anche

Si applica a

RemovePackageAsync(String, RemovalOptions)

Rimuove un pacchetto per l'utente corrente in modo asincrono e riceve i messaggi di stato e stato per l'operazione di rimozione. I pacchetti di dipendenza vengono rimossi anche per l'utente se nessun altro pacchetto installato per l'utente dipende da essi.

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)

Parametri

packageFullName
String

Platform::String

winrt::hstring

Rappresentazione di stringa dell'identità del pacchetto per identificare il pacchetto da rimuovere.

removalOptions
RemovalOptions

Valore tipizzato RemovalOptions che modifica l'operazione di rimozione.

Restituisce

Puntatore che riceve l'indirizzo di un oggetto che implementa l'interfaccia IAsyncOperationWithProgress .

Attributi

Commenti

Affinché una chiamata a questo metodo venga eseguita correttamente, il chiamante deve soddisfare una di queste condizioni:

  • Il chiamante è in esecuzione in un AppContainer (Low IL) e ha la funzionalità con restrizioni packageManagement .
  • Il chiamante è in esecuzione con media IL o versione successiva.
  • Il server di pubblicazione del chiamante corrisponde all'editore del pacchetto (o del volume) da rimuovere.

Per le descrizioni dei termini precedenti e collegamenti ad altre informazioni, vedi Creazione di pacchetti, distribuzione e processo.

Vedi anche

Si applica a