Condividi tramite


PackageManager.AddPackageAsync Metodo

Definizione

Overload

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Aggiunge un pacchetto (il pacchetto principale) e i relativi pacchetti di dipendenza per l'utente corrente, usando le opzioni di distribuzione specificate.

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

Aggiunge un pacchetto (il pacchetto principale) e i relativi pacchetti di dipendenza al volume specificato per l'utente corrente, utilizzando le opzioni di distribuzione specificate.

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

Aggiunge un pacchetto e i relativi pacchetti di dipendenza al volume specificato per l'utente corrente, utilizzando le opzioni di distribuzione specificate.

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

Aggiunge un pacchetto (il pacchetto principale) e i relativi pacchetti di dipendenza per l'utente corrente, usando le opzioni di distribuzione specificate.

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

Aggiunge un pacchetto (il pacchetto principale) e i relativi pacchetti di dipendenza per l'utente corrente, usando le opzioni di distribuzione specificate.

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)

Parametri

packageUri
Uri Uri

URI del pacchetto da aggiungere. L'URI deve seguire lo schema URI del file (file://), perché gli unici schemi URI supportati sono percorsi di file locali e percorsi di rete locali.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI dei pacchetti di dipendenza da aggiungere. Se non sono presenti pacchetti di dipendenza o se i pacchetti di dipendenza sono già registrati, questo parametro può essere Null.

deploymentOptions
DeploymentOptions

Combinazione bit per bit dei valori di enumerazione dell'enumerazione DeploymentOptions . ForceApplicationShutdown e Nessuno sono le uniche opzioni valide per questo metodo. Se si specifica un'altra opzione, viene restituito un valore E_INVALIDARG.

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

Requisiti Windows

Funzionalità dell'app
packageManagement

Esempio

Nell'esempio seguente viene utilizzato il metodo PackageManager.AddPackageAsync per installare un pacchetto senza dipendenze o le cui dipendenze sono già installate. Si noti che il percorso del pacchetto principale viene passato come argomento nell'esempio. AddPackageAsync restituisce un oggetto che può essere utilizzato per gestire l'operazione asincrona. Nell'esempio viene utilizzata la proprietà Completed per impostare il delegato e viene controllata 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;

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

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

Vedi anche

Si applica a

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

Aggiunge un pacchetto (il pacchetto principale) e i relativi pacchetti di dipendenza al volume specificato per l'utente corrente, utilizzando le opzioni di distribuzione specificate.

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)

Parametri

packageUri
Uri Uri

URI del pacchetto da aggiungere. L'URI deve seguire lo schema URI del file (file://), perché gli unici schemi URI supportati sono percorsi di file locali e percorsi di rete locali.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI dei pacchetti di dipendenza da aggiungere. Se non sono presenti pacchetti di dipendenza o se i pacchetti di dipendenza sono già registrati, questo parametro può essere Null.

deploymentOptions
DeploymentOptions

Combinazione bit per bit dei valori di enumerazione dell'enumerazione DeploymentOptions . ForceApplicationShutdown e Nessuno sono le uniche opzioni valide per questo metodo. Se si specifica un'altra opzione, viene restituito un valore E_INVALIDARG.

targetVolume
PackageVolume

Volume a cui viene aggiunto il pacchetto.

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

Requisiti Windows

Funzionalità dell'app
packageManagement

Vedi anche

Si applica a

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

Aggiunge un pacchetto e i relativi pacchetti di dipendenza al volume specificato per l'utente corrente, utilizzando le opzioni di distribuzione specificate.

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)

Parametri

packageUri
Uri Uri

URI del pacchetto di origine da aggiungere. L'URI deve seguire lo schema URI del file (file://), perché gli unici schemi URI supportati sono percorsi di file locali e percorsi di rete locali.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI dei pacchetti di dipendenza da aggiungere. Se non sono presenti pacchetti di dipendenza o se i pacchetti di dipendenza sono già registrati, questo parametro può essere Null.

deploymentOptions
DeploymentOptions

Combinazione bit per bit dei valori di enumerazione dell'enumerazione DeploymentOptions . ForceApplicationShutdown e Nessuno sono le uniche opzioni valide per questo metodo. Se si specifica un'altra opzione, viene restituito un valore E_INVALIDARG.

targetVolume
PackageVolume

Volume a cui viene aggiunto il pacchetto.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Nomi della famiglia di pacchetti del bundle principale da registrare.

externalPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI degli altri pacchetti nel bundle principale da registrare.

Restituisce

Percentuale di completamento deploymentProgress per l'intero corso dell'operazione di distribuzione.

Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 Creators Update (è stato introdotto in 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v4.0)

Vedi anche

Si applica a

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

Aggiunge un pacchetto (il pacchetto principale) e i relativi pacchetti di dipendenza per l'utente corrente, usando le opzioni di distribuzione specificate.

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)

Parametri

packageUri
Uri Uri

URI del pacchetto da aggiungere. L'URI deve seguire lo schema URI del file (file://), perché gli unici schemi URI supportati sono percorsi di file locali e percorsi di rete locali.

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI delle dipendenze del framework da aggiungere. Se non sono presenti pacchetti di dipendenza o se i pacchetti di dipendenza sono già registrati, questo parametro può essere Null.

options
DeploymentOptions

Opzioni di distribuzione per il pacchetto.

targetVolume
PackageVolume

Volume a cui viene aggiunto il pacchetto.

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Nomi della famiglia di pacchetti del bundle principale da registrare.

packageUrisToInstall

IIterable<Uri>

IEnumerable<Uri>

URI di pacchetti facoltativi da installare con il pacchetto principale dell'app.

relatedPackageUris

IIterable<Uri>

IEnumerable<Uri>

URI dei pacchetti facoltativi correlati da aggiornare alla stessa versione dei nuovi pacchetti facoltativi.

Restituisce

Percentuale di completamento deploymentProgress per l'intero corso dell'operazione di distribuzione.

Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 Fall Creators Update (è stato introdotto in 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v5.0)

Vedi anche

Si applica a