PackageManager.AddPackageAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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)
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
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
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
- AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)
- Pacchetto
- Esempio di aggiunta del pacchetto dell'app
Si applica a
AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)
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
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
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
- AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)
- Pacchetto
- Esempio di aggiunta del pacchetto dell'app
Si applica a
AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>)
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
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
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.
Nomi della famiglia di pacchetti del bundle principale da registrare.
- externalPackageUris
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>)
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
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
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.
Nomi della famiglia di pacchetti del bundle principale da registrare.
- packageUrisToInstall
URI di pacchetti facoltativi da installare con il pacchetto principale dell'app.
- relatedPackageUris
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)
|