PackageManager.RemovePackageAsync Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
RemovePackageAsync(String) |
Menghapus Paket untuk pengguna saat ini secara asinkron dan menerima pesan kemajuan dan status pada operasi penghapusan. Paket dependensi juga dihapus untuk pengguna jika tidak ada paket lain yang diinstal untuk pengguna bergantung padanya. |
RemovePackageAsync(String, RemovalOptions) |
Menghapus Paket untuk pengguna saat ini secara asinkron dan menerima pesan kemajuan dan status pada operasi penghapusan. Paket dependensi juga dihapus untuk pengguna jika tidak ada paket lain yang diinstal untuk pengguna bergantung padanya. |
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)
Parameter
- packageFullName
-
String
Platform::String
winrt::hstring
Representasi string identitas paket untuk mengidentifikasi paket yang akan dihapus.
Mengembalikan
Status permintaan penyebaran. DeploymentResult berisi nilai akhir yang dikembalikan dari operasi penyebaran, setelah selesai. DeploymentProgress dapat digunakan untuk mendapatkan persentase penyelesaian selama seluruh operasi penyebaran.
- Atribut
Contoh
Panggil metode RemovePackageAsync(String) untuk menghapus instalan paket aplikasi. Perhatikan bahwa nama lengkap paket dalam packageFullName berasal dari argumen baris perintah.
RemovePackageAsync(String) mengembalikan objek yang dapat digunakan untuk mengelola operasi asinkron. Gunakan properti Selesai untuk mengatur delegasi. Periksa properti Status untuk menentukan status operasi penyebaran. Jika statusnya adalah Kesalahan, contohnya memanggil metode GetResults untuk mendapatkan informasi kesalahan tambahan.
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;
}
Lihat juga dukungan Visual Studio untuk 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;
}
Keterangan
Agar panggilan ke metode ini berhasil, pemanggil perlu memenuhi salah satu kondisi ini:
- Pemanggil berjalan di AppContainer (Low IL) dan memiliki kemampuan packageManagement terbatas.
- Penelepon berjalan dengan MEDIUM IL, atau yang lebih tinggi.
- Penerbit penelepon cocok dengan penerbit paket (atau volume) yang dihapus.
Untuk deskripsi istilah di atas, dan tautan ke info selengkapnya, lihat Pengemasan, penyebaran, dan proses.
Permintaan ini tidak dapat dibatalkan. Nama lengkap paket adalah bentuk alternatif dari identitas paket yang lebih pendek dan cocok untuk penamaan objek seperti file dan direktori. Identitas paket diwakili oleh elemen Identitas dari manifes paket. Ketika paket dihapus, paket dihapus untuk pengguna saat ini, yang berarti bahwa payload paket terus ada jika pengguna lain telah menginstal paket, tetapi tidak akan dapat diakses oleh pengguna saat ini. Jika tidak ada pengguna lain yang menginstal paket yang ditentukan, payload-nya akan dihapus dari direktori %ProgramFiles%\WindowsApps. Aplikasi apa pun yang terkait dengan paket yang sedang dihapus akan dimatikan secara otomatis sebagai bagian dari penghapusan paket.
Lihat juga
Berlaku untuk
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)
Parameter
- packageFullName
-
String
Platform::String
winrt::hstring
Representasi string identitas paket untuk mengidentifikasi paket yang akan dihapus.
- removalOptions
- RemovalOptions
Nilai jenis RemovalOptions yang memodifikasi operasi penghapusan.
Mengembalikan
Pointer yang menerima alamat objek yang mengimplementasikan antarmuka IAsyncOperationWithProgress .
- Atribut
Keterangan
Agar panggilan ke metode ini berhasil, pemanggil perlu memenuhi salah satu kondisi ini:
- Pemanggil berjalan di AppContainer (Low IL) dan memiliki kemampuan packageManagement terbatas.
- Penelepon berjalan dengan MEDIUM IL, atau yang lebih tinggi.
- Penerbit penelepon cocok dengan penerbit paket (atau volume) yang dihapus.
Untuk deskripsi istilah di atas, dan tautan ke info selengkapnya, lihat Pengemasan, penyebaran, dan proses.