PackageManager.AddPackageByAppInstallerFileAsync 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í.
Permite instalar paquetes de una o varias aplicaciones con un archivo .appinstaller.
public:
virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageByAppInstallerFileAsync(Uri ^ appInstallerFileUri, AddPackageByAppInstallerOptions options, PackageVolume ^ targetVolume) = AddPackageByAppInstallerFileAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByAppInstallerFileAsync(Uri const& appInstallerFileUri, AddPackageByAppInstallerOptions const& options, PackageVolume const& targetVolume);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageByAppInstallerFileAsync(System.Uri appInstallerFileUri, AddPackageByAppInstallerOptions options, PackageVolume targetVolume);
function addPackageByAppInstallerFileAsync(appInstallerFileUri, options, targetVolume)
Public Function AddPackageByAppInstallerFileAsync (appInstallerFileUri As Uri, options As AddPackageByAppInstallerOptions, targetVolume As PackageVolume) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)
Parámetros
- options
- AddPackageByAppInstallerOptions
Las opciones especificadas en AddPackageByAppInstallerOptions.
- targetVolume
- PackageVolume
Volumen en el que está instalado el paquete.
Devoluciones
IAsyncOperationWithProgress con deploymentResult que indica si la implementación se realizó correctamente y DeploymentProgress que proporciona actualizaciones de progreso durante la instalación.
- Atributos
Requisitos de Windows
| Requisitos | Description |
|---|---|
| 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)
|
| Características de aplicaciones |
packageManagement
|
Ejemplos
En el ejemplo siguiente se usa AddPackageByAppInstallerFileAsync para instalar paquetes definidos en un archivo .appinstaller. Tenga en cuenta que el IAsyncOperationWithProgress devuelto se asigna a una variable antes de supervisar su finalización. Si no se puede contener una referencia a la operación, puede provocar que se recopilen elementos no utilizados y nunca se completen.
using System;
using System.Threading;
using Windows.Foundation;
using Windows.Management.Deployment;
public static int Main(string[] args)
{
string inputFileUri = args[0];
int returnValue = 0;
Uri appInstallerFileUri = new Uri(inputFileUri);
PackageManager packageManager = new PackageManager();
PackageVolume packageVolume = packageManager.GetDefaultPackageVolume();
// Important: assign the operation to a variable to prevent it from
// being garbage-collected before completion.
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> deploymentOperation =
packageManager.AddPackageByAppInstallerFileAsync(
appInstallerFileUri,
AddPackageByAppInstallerOptions.ForceTargetAppShutdown,
packageVolume);
// This event is signaled when the operation completes
ManualResetEvent opCompletedEvent = new ManualResetEvent(false);
// Define the delegate using a statement lambda
deploymentOperation.Completed = (operation, 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;
}
Comentarios
Este método no se admite en JavaScript. Sin embargo, puedes crear un componente de Windows Runtime que llame a este método y, a continuación, llamar a este componente desde una aplicación para UWP de JavaScript. Para obtener más información, consulte Problemas de api de archivos del instalador de aplicaciones.