Funzione MddAddPackageDependency (msixdynamicdependency.h)

Aggiunge un riferimento di runtime per la dipendenza del pacchetto framework creato in precedenza usando il metodo MddTryCreatePackageDependency , 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 MddAddPackageDependency(
  PCWSTR                         packageDependencyId,
  INT32                          rank,
  MddAddPackageDependencyOptions options,
  MDD_PACKAGEDEPENDENCY_CONTEXT  *packageDependencyContext,
  PWSTR                          *packageFullName
) noexcept;

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 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: MddAddPackageDependencyOptions

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*

Nome completo del pacchetto a cui è stata risolta la dipendenza. Usare la funzione HeapAlloc per allocare memoria per questo parametro e usare HeapFree per deallocare la memoria.

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 MddAddPackageDependency 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 tale utente fino all'ultimo riferimento per tutti i processi per tale utente viene rimosso tramite MddRemovePackageDependency o il processo viene terminato. Le chiamate riuscite a questo metodo modificano il valore id di generazione restituito da MddGetGenerationId.

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 MddRemovePackageDependency .

Se nel grafico del pacchetto sono presenti più pacchetti con lo stesso rango della chiamata a MddAddPackageDependency, il pacchetto risolto è (per impostazione predefinita) aggiunto dopo altri dello stesso rango. Per aggiungere un pacchetto prima di altri dello stesso rango, specificare 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 10, versione 1809 (con SDK per app di Windows 1.0 o versione successiva)
Intestazione msixdynamicdependency.h

Vedi anche

MddRemovePackageDependency

MddTryCreatePackageDependency

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