Share via


Funzione AddPackageDependency (appmodel.h)

Aggiunge un riferimento di runtime per la dipendenza del pacchetto framework creato in precedenza usando il metodo TryCreatePackageDependency , con le opzioni specificate. Dopo aver restituito correttamente questo metodo, l'app può attivare i tipi e usare il contenuto dal pacchetto del framework.

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 di chiamata del processo. Questo parametro deve corrispondere a una dipendenza del pacchetto definita usando 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 aggiunto. Questo handle è valido finché non viene passato a RemovePackageDependency.

packageFullName

Tipo: PCWSTR*

Quando questo metodo restituisce, contiene l'indirizzo di un puntatore a una stringa Unicode con terminazione null che specifica il nome completo del pacchetto a cui è stata risolta la dipendenza. Il chiamante è responsabile della liberazione di questa risorsa una volta che non è più necessario 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 in input.

Commenti

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

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

Dopo aver restituito correttamente questo metodo, l'app può attivare i tipi e usare il contenuto dal pacchetto framework fino a quando non viene chiamato RemovePackageDependency .

Se nel grafico del pacchetto 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 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.

Requisiti

Requisito Valore
Client minimo supportato Windows 11 (introdotta nella versione 10.0.22000.0)
Intestazione appmodel.h

Vedi anche

RemovePackageDependency

TryCreatePackageDependency

Usare l'API di dipendenza dinamica per fare riferimento ai pacchetti MSIX in fase di esecuzione