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. Después de que este método se devuelva correctamente, la aplicación puede activar tipos y usar contenido del paquete de marco.

Consulte también AddPackageDependency2.

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 el función TryCreatePackageDependency para el usuario que realiza la llamada o el sistema (a través de la opción CreatePackageDependencyOptions_ScopeIsSystem) o, de lo contrario, 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 es 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 códigos de error posibles incluyen lo siguiente.

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

Observaciones

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 de forma en paralelo (retrasar eficazmente la desinstalación o mantenimiento de la versión anterior hasta que la aplicación haya terminado de usarlo). La resolución de paquetes es específica de un usuario y puede devolver valores diferentes para distintos usuarios de un sistema.

Cada llamada 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 el proceso finaliza.

Después de que este método vuelva correctamente, la aplicación puede activar tipos y usar contenido del 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 de la misma clasificación. Para agregar un paquete antes de que otros de la misma clasificación, especifique AddPackageDependencyOptions_PrependIfRankCollision para las opciones de parámetro.

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

Requisitos

Requisito Valor
cliente mínimo admitido Windows 11 (introducido en 10.0.22000.0)
encabezado de appmodel.h
Library OneCoreUAP.Lib

Consulte también