Compartir a través de


Función AddPackageDependency (appmodel.h)

Agrega una referencia en tiempo de ejecución para la dependencia del paquete de marco que creó anteriormente mediante el método TryCreatePackageDependency , con las opciones especificadas. Una vez que este método se devuelve correctamente, la aplicación puede activar tipos y usar contenido del paquete de marco.

Sintaxis

HRESULT AddPackageDependency(
  PCWSTR                      packageDependencyId,
  INT32                       rank,
  AddPackageDependencyOptions options,
  PACKAGEDEPENDENCY_CONTEXT   *packageDependencyContext,
  PWSTR                       *packageFullName
);

Parámetros

packageDependencyId

Tipo: PCWSTR

Identificador de la dependencia del paquete que se va a resolver y agregar al gráfico de paquetes del proceso de invocación. Este parámetro debe coincidir con una dependencia de paquete definida mediante la función TryCreatePackageDependency para el usuario que realiza la llamada o el sistema (a través de la opción CreatePackageDependencyOptions_ScopeIsSystem ), o bien se devuelve un error.

rank

Tipo: INT32

Rango que se va a usar para agregar el paquete resuelto al gráfico de paquetes del autor de la llamada. Para obtener más información, vea los comentarios.

options

Tipo: AddPackageDependencyOptions

Las opciones que se aplicarán al agregar la dependencia del paquete.

packageDependencyContext

Tipo: PACKAGEDEPENDENCY_CONTEXT*

Identificador de la dependencia de paquete agregada. Este identificador es válido hasta que se pasa a RemovePackageDependency.

packageFullName

Tipo: PCWSTR*

Cuando este método devuelve, contiene la dirección de un puntero a una cadena Unicode terminada en null que especifica el nombre completo del paquete al que se ha resuelto la dependencia. El autor de la llamada es responsable de liberar este recurso una vez que ya no sea necesario llamando a HeapFree.

Valor devuelto

Tipo: HRESULT

Si la función se realiza correctamente, devuelve ERROR_SUCCESS. De lo contrario, la función devuelve un código de error. Los posibles códigos de error incluyen lo siguiente.

Código devuelto Descripción
E_INVALIDARG El parámetro packageDependencyId o packageDependencyContext es NULL en la entrada.

Comentarios

Al llamar a este método, se resuelve la dependencia del paquete de marco en un paquete específico del sistema. También informa al sistema operativo de que el paquete de marco está activo y para controlar las actualizaciones de versiones en paralelo (retrasar eficazmente la desinstalación o mantenimiento de la versión anterior hasta que la aplicación haya terminado de usarla). La resolución de paquetes es específica de un usuario y puede devolver valores diferentes para distintos usuarios de un sistema.

Cada llamada a AddPackageDependency correcta agrega el paquete resuelto al gráfico de paquetes del proceso de llamada, aunque ya esté presente. La API no aplica ninguna detección o filtrado duplicados (es decir, varias referencias de un paquete no son perjudiciales). Una vez completada la resolución, la dependencia del paquete permanece resuelta para ese usuario hasta que la última referencia en todos los procesos de ese usuario se quita a través de RemovePackageDependency o se finaliza el proceso.

Después de que este método se devuelva correctamente, la aplicación puede activar tipos y usar contenido desde el paquete de marco hasta que se llame a RemovePackageDependency .

Si hay varios paquetes presentes en el gráfico de paquetes con la misma clasificación que la llamada a AddPackageDependency, el paquete resuelto se agrega (de forma predeterminada) después de otros del mismo rango. Para agregar un paquete antes que otros del mismo rango, especifique AddPackageDependencyOptions_PrependIfRankCollision para el parámetro options .

Para más información, consulte Uso de la API de dependencia dinámica para hacer referencia a paquetes MSIX en tiempo de ejecución.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 11 (introducido en la versión 10.0.22000.0)
Encabezado appmodel.h

Consulte también

RemovePackageDependency

TryCreatePackageDependency

Uso de la API de dependencias dinámicas para hacer referencia a paquetes MSIX en tiempo de ejecución