Freigeben über


AddPackageDependency-Funktion (appmodel.h)

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

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 Aufrufprozesses 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 wurde, 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 Optionen, die beim Hinzufügen der Paketabhängigkeit angewendet werden sollen.

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ückgibt, enthält die Adresse eines Zeigers auf eine Unicode-Zeichenfolge mit Null-Beendigung, die den vollständigen Namen des Pakets angibt, in das die Abhängigkeit aufgelöst wurde. Der Aufrufer ist für die Freigabe dieser Ressource verantwortlich, sobald sie nicht mehr benötigt wird, indem er HeapFree aufruft.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ist, gibt sie ERROR_SUCCESS zurück. Andernfalls gibt die Funktion einen Fehlercode zurück. Zu den möglichen Fehlercodes gehören die folgenden:

Rückgabecode Beschreibung
E_INVALIDARG Der Parameter packageDependencyId oder packageDependencyContext ist bei der Eingabe NULL.

Hinweise

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

Jeder erfolgreiche AddPackageDependency-Aufruf fügt das aufgelöste Paket dem Paketdiagramm des aufrufenden Prozesses hinzu, auch wenn bereits vorhanden. Es gibt keine doppelte Erkennung oder Filterung, die von der API angewendet wird (das heißt, 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 über alle Prozesse für diesen Benutzer über RemovePackageDependency entfernt 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 im Paketdiagramm mehrere Pakete mit demselben Rang wie der Aufruf von AddPackageDependency vorhanden sind, wird das aufgelöste Paket (standardmäßig) nach anderen Paketen desselben Rangs hinzugefügt. Um ein Paket vor anderen Personen desselben Rangs hinzuzufügen, geben Sie AddPackageDependencyOptions_PrependIfRankCollision für den Optionsparameter an.

Weitere Informationen finden Sie unter Verwenden der dynamischen Abhängigkeits-API, um zur Laufzeit auf MSIX-Pakete zu verweisen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 11 (eingeführt in 10.0.22000.0)
Kopfzeile appmodel.h

Weitere Informationen

RemovePackageDependency

TryCreatePackageDependency

Verwenden der API für dynamische Abhängigkeiten zum Verweisen auf MSIX-Pakete zur Laufzeit