PackageManager.AddPackageAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions) |
Agrega un paquete (el paquete principal) y sus paquetes de dependencia para el usuario actual mediante las opciones de implementación especificadas. |
AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume) |
Agrega un paquete (el paquete principal) y sus paquetes de dependencia al volumen especificado para el usuario actual mediante las opciones de implementación especificadas. |
AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>) |
Agrega un paquete y sus paquetes de dependencia al volumen especificado para el usuario actual mediante las opciones de implementación especificadas. |
AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>, IIterable<Uri>) |
Agrega un paquete (el paquete principal) y sus paquetes de dependencia para el usuario actual mediante las opciones de implementación especificadas. |
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)
Parámetros
URI del paquete que se va a agregar. El URI debe seguir el esquema de URI de archivo (file://), ya que los únicos esquemas de URI admitidos son rutas de acceso de archivo locales y rutas de red locales.
- dependencyPackageUris
URI de los paquetes de dependencia que se van a agregar. Si no hay ningún paquete de dependencia o si los paquetes de dependencia ya están registrados, este parámetro puede ser NULL.
- deploymentOptions
- DeploymentOptions
Combinación bit a bit de valores de enumeración de la enumeración DeploymentOptions . ForceApplicationShutdown y None son las únicas opciones válidas para este método. Si se especifica cualquier otra opción, se obtiene un valor devuelto E_INVALIDARG.
Devoluciones
Estado de la solicitud de implementación. DeploymentResult contiene el valor devuelto final de la operación de implementación, una vez completado. DeploymentProgress se puede usar para obtener el porcentaje de finalización durante todo el curso de la operación de implementación.
- Atributos
Requisitos de Windows
Características de aplicaciones |
packageManagement
|
Ejemplos
En el ejemplo siguiente se usa el método PackageManager.AddPackageAsync para instalar un paquete que no tiene dependencias o cuyas dependencias ya están instaladas. Tenga en cuenta que la ruta de acceso del paquete principal se pasa como argumento en el ejemplo. AddPackageAsync devuelve un objeto que se puede usar para administrar la operación asincrónica. En el ejemplo se usa la propiedad Completed para establecer el delegado y comprueba la propiedad Status para determinar el estado de la operación de implementación. Si el estado es Error, el ejemplo llama al método GetResults para obtener información de error adicional.
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;
}
Consulta también Compatibilidad de Visual Studio para 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;
}
Consulte también
- AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)
- Paquete
- Adición de un ejemplo de paquete de aplicación
Se aplica 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)
Parámetros
URI del paquete que se va a agregar. El URI debe seguir el esquema de URI de archivo (file://), ya que los únicos esquemas de URI admitidos son rutas de acceso de archivo locales y rutas de red locales.
- dependencyPackageUris
URI de los paquetes de dependencia que se van a agregar. Si no hay ningún paquete de dependencia o si los paquetes de dependencia ya están registrados, este parámetro puede ser NULL.
- deploymentOptions
- DeploymentOptions
Combinación bit a bit de valores de enumeración de la enumeración DeploymentOptions . ForceApplicationShutdown y None son las únicas opciones válidas para este método. Si se especifica cualquier otra opción, se obtiene un valor devuelto E_INVALIDARG.
- targetVolume
- PackageVolume
Volumen al que se agrega el paquete.
Devoluciones
Estado de la solicitud de implementación. DeploymentResult contiene el valor devuelto final de la operación de implementación, una vez completado. DeploymentProgress se puede usar para obtener el porcentaje de finalización durante todo el curso de la operación de implementación.
- Atributos
Requisitos de Windows
Características de aplicaciones |
packageManagement
|
Consulte también
- AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)
- Paquete
- Adición de un ejemplo de paquete de aplicación
Se aplica 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)
Parámetros
URI del paquete de origen que se va a agregar. El URI debe seguir el esquema de URI de archivo (file://), ya que los únicos esquemas de URI admitidos son rutas de acceso de archivo locales y rutas de red locales.
- dependencyPackageUris
URI de los paquetes de dependencia que se van a agregar. Si no hay ningún paquete de dependencia o si los paquetes de dependencia ya están registrados, este parámetro puede ser NULL.
- deploymentOptions
- DeploymentOptions
Combinación bit a bit de valores de enumeración de la enumeración DeploymentOptions . ForceApplicationShutdown y None son las únicas opciones válidas para este método. Si se especifica cualquier otra opción, se obtiene un valor devuelto E_INVALIDARG.
- targetVolume
- PackageVolume
Volumen al que se agrega el paquete.
Los nombres de familia del paquete del paquete principal que se van a registrar.
- externalPackageUris
Los URI de los demás paquetes del paquete principal que se van a registrar.
Devoluciones
Porcentaje deploymentProgress de finalización durante todo el curso de la operación de implementación.
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 Creators Update (se introdujo en la versión 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v4.0)
|
Consulte también
Se aplica 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)
Parámetros
URI del paquete que se va a agregar. El URI debe seguir el esquema de URI de archivo (file://), ya que los únicos esquemas de URI admitidos son rutas de acceso de archivo locales y rutas de red locales.
- dependencyPackageUris
Los URI de las dependencias del marco que se van a agregar. Si no hay ningún paquete de dependencia o si los paquetes de dependencia ya están registrados, este parámetro puede ser NULL.
- options
- DeploymentOptions
Las opciones de implementación del paquete.
- targetVolume
- PackageVolume
Volumen al que se agrega el paquete.
Los nombres de familia del paquete del paquete principal que se van a registrar.
- packageUrisToInstall
Los URI de los paquetes opcionales que se van a instalar con el paquete de aplicación principal.
- relatedPackageUris
URI de paquetes opcionales relacionados que se van a actualizar a la misma versión que los nuevos paquetes opcionales.
Devoluciones
Porcentaje deploymentProgress de finalización durante todo el curso de la operación de implementación.
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 Fall Creators Update (se introdujo en la versión 10.0.16299.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v5.0)
|