PackageManager.AddPackageAsync Metode

Definisi

Overload

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Menambahkan Paket (paket utama) dan paket dependensinya untuk pengguna saat ini, menggunakan opsi penyebaran yang ditentukan.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)

Menambahkan Paket (paket utama) dan paket dependensinya ke volume yang ditentukan untuk pengguna saat ini, menggunakan opsi penyebaran yang ditentukan.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>)

Menambahkan Paket dan paket dependensinya ke volume yang ditentukan untuk pengguna saat ini, menggunakan opsi penyebaran yang ditentukan.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>, IIterable<Uri>)

Menambahkan Paket (paket utama) dan paket dependensinya untuk pengguna saat ini, menggunakan opsi penyebaran yang ditentukan.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Menambahkan Paket (paket utama) dan paket dependensinya untuk pengguna saat ini, menggunakan opsi penyebaran yang ditentukan.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageAsync")]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions);
[Windows.Foundation.Metadata.Overload("AddPackageAsync")]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Parameter

packageUri
Uri Uri

Uri paket yang akan ditambahkan. URI harus mengikuti skema URI file (file://) karena satu-satunya skema URI yang didukung adalah jalur file lokal dan jalur jaringan lokal.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Uri paket dependensi yang akan ditambahkan. Jika tidak ada paket dependensi atau jika paket dependensi sudah terdaftar, parameter ini bisa null.

deploymentOptions
DeploymentOptions

Kombinasi bitwise nilai enumerasi dari enumerasi DeploymentOptions . ForceApplicationShutdown dan None adalah satu-satunya opsi yang valid untuk metode ini. Menentukan opsi lain menghasilkan nilai pengembalian E_INVALIDARG.

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

Persyaratan Windows

Kemampuan aplikasi
packageManagement

Contoh

Contoh berikut menggunakan metode PackageManager.AddPackageAsync untuk menginstal paket yang tidak memiliki dependensi atau yang dependensinya sudah diinstal. Perhatikan bahwa jalur paket utama diteruskan sebagai argumen dalam contoh. AddPackageAsync mengembalikan objek yang dapat digunakan untuk mengelola operasi asinkron. Contoh menggunakan properti Selesai untuk mengatur delegasi dan memeriksa 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;

public static int Main(string[] args)
{
    string inputPackageUri = args[0];
    int returnValue=0;

    Uri packageUri = new Uri(inputPackageUri);            

    PackageManager packageManager = new PackageManager();

    IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> deploymentOperation = 
        packageManager.AddPackageAsync(
            packageUri, 
            null, 
            DeploymentOptions.None);

    // 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("Installation canceled");
    }
    else if (deploymentOperation.Status == AsyncStatus.Completed)
    {
        Console.WriteLine("Installation succeeded");
    }
    else
    {
        returnValue = 1;
        Console.WriteLine("Installation 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 packageUriString{ argv[1] };
    Uri packageUri{ packageUriString };
    PackageManager packageManager;

    auto deploymentOperation{ packageManager.AddPackageAsync(packageUri, nullptr, DeploymentOptions::None) };
    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"Installation canceled" << std::endl;
    }
    else if (deploymentOperation.Status() == AsyncStatus::Completed)
    {
        std::wcout << L"Installation succeeded" << std::endl;
    }
    else
    {
        std::wcout << L"Installation status unknown" << std::endl;
        returnValue = 1;
    }
    return returnValue;
}
using namespace Windows::Foundation;
using namespace Windows::Management::Deployment;

[STAThread]
int __cdecl main(Platform::Array<String^>^ args)
{  
    String^ inputPackageUri = args[1];
    int returnValue=0;

    Uri^ packageUri = ref new Uri(inputPackageUri);

    PackageManager^ packageManager = ref new PackageManager();

    auto deploymentOperation = packageManager->AddPackageAsync(
        packageUri, 
        nullptr, 
        DeploymentOptions::None);

    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"Error code: " << deploymentOperation->ErrorCode.Value << endl;
        wcout << L"Error text: " << deploymentResult->ErrorText->Data() << endl;
        returnValue = 1;
    }
    else if ( deploymentOperation->Status == AsyncStatus::Canceled )
    {
        wcout << L"Installation canceled" << endl;
    }
    else if ( deploymentOperation->Status == AsyncStatus::Completed )
    {
        wcout << L"Installation succeeded" << endl;
    }
    else
    {
        wcout << L"Installation status unknown" << endl;
        returnValue = 1;
    }
    return returnValue;
}

Lihat juga

Berlaku untuk

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)

Menambahkan Paket (paket utama) dan paket dependensinya ke volume yang ditentukan untuk pengguna saat ini, menggunakan opsi penyebaran yang ditentukan.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume ^ targetVolume) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions, PackageVolume const& targetVolume);
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions, targetVolume)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions, targetVolume As PackageVolume) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Parameter

packageUri
Uri Uri

Uri paket yang akan ditambahkan. URI harus mengikuti skema URI file (file://) karena satu-satunya skema URI yang didukung adalah jalur file lokal dan jalur jaringan lokal.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Uri paket dependensi yang akan ditambahkan. Jika tidak ada paket dependensi atau jika paket dependensi sudah terdaftar, parameter ini bisa null.

deploymentOptions
DeploymentOptions

Kombinasi bitwise nilai enumerasi dari enumerasi DeploymentOptions . ForceApplicationShutdown dan None adalah satu-satunya opsi yang valid untuk metode ini. Menentukan opsi lain menghasilkan nilai pengembalian E_INVALIDARG.

targetVolume
PackageVolume

Volume tempat paket ditambahkan.

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

Persyaratan Windows

Kemampuan aplikasi
packageManagement

Lihat juga

Berlaku untuk

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>)

Menambahkan Paket dan paket dependensinya ke volume yang ditentukan untuk pengguna saat ini, menggunakan opsi penyebaran yang ditentukan.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume ^ targetVolume, IIterable<Platform::String ^> ^ optionalPackageFamilyNames, IIterable<Uri ^> ^ externalPackageUris) = AddPackageAsync;
/// [Windows.Foundation.Metadata.DefaultOverload]
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndOptionalPackagesAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions, PackageVolume const& targetVolume, IIterable<winrt::hstring> const& optionalPackageFamilyNames, IIterable<Uri> const& externalPackageUris);
[Windows.Foundation.Metadata.DefaultOverload]
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndOptionalPackagesAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume, IEnumerable<string> optionalPackageFamilyNames, IEnumerable<System.Uri> externalPackageUris);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions, targetVolume, optionalPackageFamilyNames, externalPackageUris)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions, targetVolume As PackageVolume, optionalPackageFamilyNames As IEnumerable(Of String), externalPackageUris As IEnumerable(Of Uri)) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Parameter

packageUri
Uri Uri

Uri paket sumber yang akan ditambahkan. URI harus mengikuti skema URI file (file://) karena satu-satunya skema URI yang didukung adalah jalur file lokal dan jalur jaringan lokal.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

Uri paket dependensi yang akan ditambahkan. Jika tidak ada paket dependensi atau jika paket dependensi sudah terdaftar, parameter ini bisa null.

deploymentOptions
DeploymentOptions

Kombinasi bitwise nilai enumerasi dari enumerasi DeploymentOptions . ForceApplicationShutdown dan None adalah satu-satunya opsi yang valid untuk metode ini. Menentukan opsi lain menghasilkan nilai pengembalian E_INVALIDARG.

targetVolume
PackageVolume

Volume tempat paket ditambahkan.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Nama keluarga paket dari bundel utama yang akan didaftarkan.

externalPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI paket lain dalam bundel utama yang akan didaftarkan.

Mengembalikan

Persentase penyelesaian DeploymentProgress selama seluruh operasi penyebaran.

Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 Creators Update (diperkenalkan dalam 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v4.0)

Lihat juga

Berlaku untuk

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>, IIterable<Uri>)

Menambahkan Paket (paket utama) dan paket dependensinya untuk pengguna saat ini, menggunakan opsi penyebaran yang ditentukan.

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions options, PackageVolume ^ targetVolume, IIterable<Platform::String ^> ^ optionalPackageFamilyNames, IIterable<Uri ^> ^ packageUrisToInstall, IIterable<Uri ^> ^ relatedPackageUris) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndRelatedSetAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& options, PackageVolume const& targetVolume, IIterable<winrt::hstring> const& optionalPackageFamilyNames, IIterable<Uri> const& packageUrisToInstall, IIterable<Uri> const& relatedPackageUris);
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndRelatedSetAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions options, PackageVolume targetVolume, IEnumerable<string> optionalPackageFamilyNames, IEnumerable<System.Uri> packageUrisToInstall, IEnumerable<System.Uri> relatedPackageUris);
function addPackageAsync(packageUri, dependencyPackageUris, options, targetVolume, optionalPackageFamilyNames, packageUrisToInstall, relatedPackageUris)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), options As DeploymentOptions, targetVolume As PackageVolume, optionalPackageFamilyNames As IEnumerable(Of String), packageUrisToInstall As IEnumerable(Of Uri), relatedPackageUris As IEnumerable(Of Uri)) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

Parameter

packageUri
Uri Uri

URI paket yang akan ditambahkan. URI harus mengikuti skema URI file (file://) karena satu-satunya skema URI yang didukung adalah jalur file lokal dan jalur jaringan lokal.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI dependensi kerangka kerja untuk ditambahkan. Jika tidak ada paket dependensi atau jika paket dependensi sudah terdaftar, parameter ini bisa null.

options
DeploymentOptions

Opsi penyebaran untuk paket.

targetVolume
PackageVolume

Volume tempat paket ditambahkan.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Nama keluarga paket dari bundel utama yang akan didaftarkan.

packageUrisToInstall

IIterable<Uri>

IEnumerable<Uri>

URI paket opsional yang akan diinstal dengan paket aplikasi utama.

relatedPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI paket opsional terkait yang akan diperbarui ke versi yang sama dengan paket opsional baru.

Mengembalikan

Persentase penyelesaian DeploymentProgress selama seluruh operasi penyebaran.

Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 Fall Creators Update (diperkenalkan dalam 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v5.0)

Lihat juga

Berlaku untuk