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 |