Condividi tramite


Funzione AddPackageDependency (appmodel.h)

Aggiunge un riferimento di runtime per la dipendenza del pacchetto framework creata in precedenza usando il metodo TryCreatePackageDependency, con le opzioni specificate. Al termine di questo metodo, l'app può attivare i tipi e usare il contenuto del pacchetto framework.

Vedere anche AddPackageDependency2.

Sintassi

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

Parametri

packageDependencyId

Tipo: PCWSTR

ID della dipendenza del pacchetto da risolvere e aggiungere al grafico del pacchetto del processo di chiamata. Questo parametro deve corrispondere a una dipendenza del pacchetto definita tramite la funzione TryCreatePackageDependency per l'utente chiamante o il sistema (tramite l'opzione CreatePackageDependencyOptions_ScopeIsSystem) oppure viene restituito un errore.

rank

Tipo: INT32

Classificazione da usare per aggiungere il pacchetto risolto al grafico del pacchetto del chiamante. Per altre informazioni, vedere le osservazioni.

options

Tipo: AddPackageDependencyOptions

Opzioni da applicare quando si aggiunge la dipendenza del pacchetto.

packageDependencyContext

Tipo: PACKAGEDEPENDENCY_CONTEXT*

Handle della dipendenza del pacchetto aggiunta. Questo handle è valido fino a quando non viene passato a RemovePackageDependency.

packageFullName

Tipo: PCWSTR*

Quando termina, questo metodo contiene l'indirizzo di un puntatore a una stringa Unicode con terminazione Null che specifica il nome completo del pacchetto in cui è stata risolta la dipendenza. Il chiamante è responsabile della liberazione di questa risorsa dopo che non è più necessaria chiamando HeapFree.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, restituisce ERROR_SUCCESS. In caso contrario, la funzione restituisce un codice di errore. I codici di errore possibili includono quanto segue.

Codice restituito Descrizione
E_INVALIDARG Il parametro packageDependencyId o packageDependencyContext è NULL all'input.

Osservazioni

La chiamata a questo metodo risolve la dipendenza del pacchetto framework in un pacchetto specifico nel sistema. Informa inoltre il sistema operativo che il pacchetto del framework è in uso attivo e di gestire gli aggiornamenti delle versioni in modo side-by-side (ritardare efficacemente la disinstallazione o la manutenzione della versione precedente fino a quando l'app non viene usata). La risoluzione dei pacchetti è specifica per un utente e può restituire valori diversi per utenti diversi in un sistema.

Ogni chiamata a AddPackageDependency aggiunge il pacchetto risolto al grafico del pacchetto del processo chiamante, anche se già presente. Non esiste alcun rilevamento o filtro duplicati applicato dall'API ( ovvero più riferimenti da un pacchetto non è dannoso). Al termine della risoluzione, la dipendenza del pacchetto rimane risolta per tale utente finché l'ultimo riferimento per tutti i processi per tale utente viene rimosso tramite RemovePackageDependency o il processo viene terminato.

Al termine del completamento di questo metodo, l'app può attivare i tipi e usare il contenuto del pacchetto framework fino a quando non viene chiamato RemovePackageDependency.

Se nel grafico dei pacchetti sono presenti più pacchetti con lo stesso rango della chiamata a AddPackageDependency, il pacchetto risolto è (per impostazione predefinita) aggiunto dopo altri dello stesso rango. Per aggiungere un pacchetto prima di altri utenti dello stesso rango, specificare AddPackageDependencyOptions_PrependIfRankCollision per il parametro opzioni.

Per altre informazioni, vedere Usare l'API di dipendenza dinamica per fare riferimento ai pacchetti MSIX in fase di esecuzione.

Fabbisogno

Requisito Valore
client minimo supportato Windows 11 (introdotto nella versione 10.0.22000.0)
intestazione appmodel.h

Vedere anche