Compartir a través de


Función MddAddPackageDependency (msixdynamicdependency.h)

Agrega una referencia en tiempo de ejecución para la dependencia del paquete de marco que creó anteriormente mediante el método MddTryCreatePackageDependency , 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 MddAddPackageDependency(
  PCWSTR                         packageDependencyId,
  INT32                          rank,
  MddAddPackageDependencyOptions options,
  MDD_PACKAGEDEPENDENCY_CONTEXT  *packageDependencyContext,
  PWSTR                          *packageFullName
) noexcept;

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 (mediante la opción 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: MddAddPackageDependencyOptions

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*

Nombre completo del paquete al que se ha resuelto la dependencia. Use la función HeapAlloc para asignar memoria para este parámetro y use HeapFree para desasignar la memoria.

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 mddAddPackageDependency correcta agrega el paquete resuelto al gráfico de paquetes del proceso de llamada, incluso si 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 MddRemovePackageDependency o se finaliza el proceso. Las llamadas correctas a este método cambian el valor del identificador de generación devuelto por MddGetGenerationId.

Una vez que este método se devuelve correctamente, la aplicación puede activar tipos y usar contenido desde el paquete de marco hasta que se llame a MddRemovePackageDependency .

Si hay varios paquetes presentes en el gráfico de paquetes con la misma clasificación que la llamada a MddAddPackageDependency, el paquete resuelto se agrega (de forma predeterminada) después de otros de la misma clasificación. Para agregar un paquete antes que otros del mismo rango, especifique 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 10, versión 1809 (con SDK de Aplicaciones para Windows 1.0 o posterior)
Encabezado msixdynamicdependency.h

Consulte también

MddRemovePackageDependency

MddTryCreatePackageDependency

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