PackageManager.RemovePackageAsync メソッド

定義

オーバーロード

RemovePackageAsync(String)

現在のユーザーの パッケージ を非同期的に削除し、削除操作の進行状況と状態メッセージを受信します。 ユーザーに依存する他のパッケージがインストールされていない場合は、ユーザーの依存関係パッケージも削除されます。

RemovePackageAsync(String, RemovalOptions)

現在のユーザーの パッケージ を非同期的に削除し、削除操作の進行状況と状態メッセージを受信します。 ユーザーに依存する他のパッケージがインストールされていない場合は、ユーザーの依存関係パッケージも削除されます。

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)

パラメーター

packageFullName
String

Platform::String

winrt::hstring

削除するパッケージを識別するためのパッケージ ID の文字列表現。

戻り値

デプロイ要求の状態。 DeploymentResult には、完了したデプロイ操作の最終的な戻り値が含まれます。 DeploymentProgress を使用して、デプロイ操作全体の完了率を取得できます。

属性

RemovePackageAsync(String) メソッドを呼び出して、アプリ パッケージをアンインストールします。 packageFullName のパッケージの完全な名前は、コマンド ライン引数から取得されていることに注意してください。

RemovePackageAsync(String) は、非同期操作の管理に使用できるオブジェクトを返します。 デリゲートを設定するには、 Completed プロパティを使用 します[状態] プロパティを確認して、デプロイ操作の状態を確認します。 状態が Error の場合、この例では GetResults メソッドを呼び出して、追加のエラー情報を取得します。

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

C++/WinRT の Visual Studio のサポートに関する記事も参照してください。

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

注釈

このメソッドの呼び出しを成功させるには、呼び出し元が次のいずれかの条件を満たす必要があります。

  • 呼び出し元は AppContainer (Low IL) で実行されており、packageManagement の機能が制限されています。
  • 呼び出し元が中 IL 以上で実行されている。
  • 呼び出し元の発行元は、削除されるパッケージ (またはボリューム) の発行元と一致します。

上記の用語の説明と詳細情報へのリンクについては、「 パッケージ化、展開、およびプロセス」を参照してください。

この要求は取り消すことができません。 パッケージの完全名は、短いパッケージ ID の代替形式であり、ファイルやディレクトリなどのオブジェクトの名前付けに適しています。 パッケージ ID は、パッケージ マニフェストの Identity 要素によって表されます。 パッケージが削除されると、現在のユーザーに対して削除されます。つまり、他のユーザーがパッケージをインストールしたが、現在のユーザーがアクセスできない場合、パッケージ ペイロードは引き続き存在します。 指定したパッケージが他のユーザーにインストールされていない場合、そのペイロードは %ProgramFiles%\WindowsApps ディレクトリから削除されます。 削除されるパッケージに関連付けられているアプリは、パッケージの削除の一部として自動的にシャットダウンされます。

こちらもご覧ください

適用対象

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)

パラメーター

packageFullName
String

Platform::String

winrt::hstring

削除するパッケージを識別するためのパッケージ ID の文字列表現。

removalOptions
RemovalOptions

削除操作を変更する RemovalOptions 型の値。

戻り値

IAsyncOperationWithProgress インターフェイスを実装するオブジェクトのアドレスを受け取るポインター。

属性

注釈

このメソッドの呼び出しを成功させるには、呼び出し元が次のいずれかの条件を満たす必要があります。

  • 呼び出し元は AppContainer (Low IL) で実行されており、packageManagement の機能が制限されています。
  • 呼び出し元が中 IL 以上で実行されている。
  • 呼び出し元の発行元は、削除されるパッケージ (またはボリューム) の発行元と一致します。

上記の用語の説明と詳細情報へのリンクについては、「 パッケージ化、展開、およびプロセス」を参照してください。

こちらもご覧ください

適用対象