Função AddPackageDependency (appmodel.h)

Adiciona uma referência em tempo de execução para a dependência do pacote de estrutura que você criou anteriormente usando o método TryCreatePackageDependency , com as opções especificadas. Depois que esse método for retornado com êxito, seu aplicativo poderá ativar tipos e usar o conteúdo do pacote de estrutura.

Sintaxe

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

Parâmetros

packageDependencyId

Tipo: PCWSTR

A ID da dependência do pacote a ser resolvida e adicionada ao grafo de pacote do processo de invocação. Esse parâmetro deve corresponder a uma dependência de pacote definida usando a função TryCreatePackageDependency para o usuário que está chamando ou o sistema (por meio da opção CreatePackageDependencyOptions_ScopeIsSystem ) ou então um erro é retornado.

rank

Tipo: INT32

A classificação a ser usada para adicionar o pacote resolvido ao grafo de pacote do chamador. Para obter mais informações, consulte os comentários.

options

Tipo: AddPackageDependencyOptions

As opções a serem aplicadas ao adicionar a dependência do pacote.

packageDependencyContext

Tipo: PACKAGEDEPENDENCY_CONTEXT*

O identificador da dependência de pacote adicionada. Esse identificador é válido até que seja passado para RemovePackageDependency.

packageFullName

Tipo: PCWSTR*

Quando esse método retorna, contém o endereço de um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que especifica o nome completo do pacote para o qual a dependência foi resolvida. O chamador é responsável por liberar esse recurso depois que ele não for mais necessário chamando HeapFree.

Retornar valor

Tipo: HRESULT

Se a função for bem-sucedida, ela retornará ERROR_SUCCESS. Caso contrário, a função retornará um código de erro. Os códigos de erro possíveis incluem o seguinte.

Código de retorno Descrição
E_INVALIDARG O parâmetro packageDependencyId ou packageDependencyContext é NULL na entrada.

Comentários

Chamar esse método resolve a dependência do pacote de estrutura para um pacote específico no sistema. Ele também informa ao sistema operacional que o pacote de estrutura está em uso ativo e para lidar com as atualizações de versão lado a lado (atrasar efetivamente a desinstalação ou, de outra forma, a manutenção da versão mais antiga até que seu aplicativo termine de usá-la). A resolução de pacotes é específica para um usuário e pode retornar valores diferentes para usuários diferentes em um sistema.

Cada chamada de AddPackageDependency bem-sucedida adiciona o pacote resolvido ao grafo de pacote do processo de chamada, mesmo que já esteja presente. Não há nenhuma detecção ou filtragem duplicada aplicada pela API (ou seja, várias referências de um pacote não são prejudiciais). Após a conclusão da resolução, a dependência do pacote permanece resolvida para esse usuário até que a última referência em todos os processos desse usuário seja removida por meio de RemovePackageDependency ou o processo seja encerrado.

Depois que esse método for retornado com êxito, seu aplicativo poderá ativar tipos e usar o conteúdo do pacote de estrutura até RemovePackageDependency ser chamado.

Se vários pacotes estiverem presentes no grafo de pacotes com a mesma classificação que a chamada para AddPackageDependency, o pacote resolvido será (por padrão) adicionado após outros da mesma classificação. Para adicionar um pacote antes de outros da mesma classificação, especifique AddPackageDependencyOptions_PrependIfRankCollision para o parâmetro options .

Para obter mais informações, consulte Usar a API de dependência dinâmica para referenciar pacotes MSIX em tempo de execução.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 11 (introduzido em 10.0.22000.0)
Cabeçalho appmodel.h

Confira também

RemovePackageDependency

TryCreatePackageDependency

Usar a API de dependência dinâmica para referenciar pacotes MSIX em tempo de execução