Freigeben über


AddPackageDependency-Funktion (appmodel.h)

Fügt einen Laufzeitverweis für die zuvor erstellte Frameworkpaketabhängigkeit mithilfe der TryCreatePackageDependency--Methode mit den angegebenen Optionen hinzu. Nachdem diese Methode erfolgreich zurückgegeben wurde, kann Ihre App Typen aktivieren und Inhalte aus dem Frameworkpaket verwenden.

Siehe auch AddPackageDependency2.

Syntax

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

Parameter

packageDependencyId

Typ: PCWSTR-

Die ID der Paketabhängigkeit, die aufgelöst und dem Paketdiagramm des aufrufenden Prozesses hinzugefügt werden soll. Dieser Parameter muss mit einer Paketabhängigkeit übereinstimmen, die mithilfe der TryCreatePackageDependency--Funktion für den aufrufenden Benutzer oder das System (über die Option CreatePackageDependencyOptions_ScopeIsSystem) definiert wird, oder andernfalls wird ein Fehler zurückgegeben.

rank

Typ: INT32-

Der Rang, der zum Hinzufügen des aufgelösten Pakets zum Paketdiagramm des Aufrufers verwendet werden soll. Weitere Informationen finden Sie in den Anmerkungen.

options

Typ: AddPackageDependencyOptions-

Die Beim Hinzufügen der Paketabhängigkeit anzuwendenden Optionen.

packageDependencyContext

Typ: PACKAGEDEPENDENCY_CONTEXT*

Das Handle der hinzugefügten Paketabhängigkeit. Dieses Handle ist gültig, bis es an RemovePackageDependencyübergeben wird.

packageFullName

Typ: PCWSTR*

Wenn diese Methode zurückgegeben wird, enthält die Adresse eines Zeigers auf eine mit Null beendete Unicode-Zeichenfolge, die den vollständigen Namen des Pakets angibt, in das die Abhängigkeit aufgelöst wurde. Der Anrufer ist für das Freigeben dieser Ressource verantwortlich, sobald sie nicht mehr benötigt wird, indem HeapFree-aufgerufen wird.

Rückgabewert

Typ: HRESULT-

Wenn die Funktion erfolgreich verläuft, wird ERROR_SUCCESSzurückgegeben. Andernfalls gibt die Funktion einen Fehlercode zurück. Die möglichen Fehlercodes umfassen Folgendes.

Rückgabecode Beschreibung
E_INVALIDARG Der parameter packageDependencyId oder packageDependencyContext parameter ist NULL für die Eingabe.

Bemerkungen

Durch Aufrufen dieser Methode wird die Frameworkpaketabhängigkeit zu einem bestimmten Paket im System aufgelöst. Außerdem wird das Betriebssystem darüber informiert, dass das Framework-Paket aktiv verwendet wird und alle Versionsupdates nebeneinander behandelt werden soll (die Deinstallation oder anderweitige Wartung der älteren Version wird effektiv verzögert, bis die App sie verwendet hat). Die Paketauflösung ist spezifisch für einen Benutzer und kann unterschiedliche Werte für verschiedene Benutzer in einem System zurückgeben.

Jedes erfolgreiche AddPackageDependency- Aufruf fügt das aufgelöste Paket dem Paketdiagramm des aufrufenden Prozesses hinzu, auch wenn es bereits vorhanden ist. Es gibt keine doppelte Erkennung oder Filterung, die von der API angewendet wird (d. a. mehrere Verweise aus einem Paket sind nicht schädlich). Nach Abschluss der Lösung bleibt die Paketabhängigkeit für diesen Benutzer aufgelöst, bis der letzte Verweis für alle Prozesse für diesen Benutzer über RemovePackageDependency entfernt wird oder der Prozess beendet wird.

Nachdem diese Methode erfolgreich zurückgegeben wurde, kann Ihre App Typen aktivieren und Inhalte aus dem Frameworkpaket verwenden, bis RemovePackageDependency aufgerufen wird.

Wenn mehrere Pakete im Paketdiagramm mit demselben Rang wie der Aufruf von AddPackageDependencyvorhanden sind, wird das aufgelöste Paket nach anderen Personen desselben Rangs (standardmäßig) hinzugefügt. Wenn Sie ein Paket vor anderen Personen desselben Rangs hinzufügen möchten, geben Sie AddPackageDependencyOptions_PrependIfRankCollision für die Optionen Parameter an.

Weitere Informationen finden Sie unter Verwenden der dynamischen Abhängigkeits-API zum Verweisen auf MSIX-Pakete zur Laufzeit.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 11 (eingeführt in 10.0.22000.0)
Header- appmodel.h
Library OneCoreUAP.Lib

Siehe auch