共用方式為


AddPackageDependency 函式 (appmodel.h)

使用 TryCreatePackageDependency 方法,新增您稍早建立之架構套件相依性的運行時間參考,並搭配指定的選項。 在此方法成功傳回之後,您的應用程式可以啟動類型,並使用架構套件的內容。

另請參閱 AddPackageDependency2

語法

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

參數

packageDependencyId

類型:PCWSTR

要解析的套件相依性標識符,並新增至叫用程式的套件圖形。 此參數必須比對呼叫使用者或系統使用 TryCreatePackageDependency 函式所定義的套件相依性 CreatePackageDependencyOptions_ScopeIsSystem,否則會傳回錯誤。

rank

類型:INT32

用來將解析套件新增至呼叫端套件圖形的排名。 如需詳細資訊,請參閱備註。

options

類型:AddPackageDependencyOptions

新增套件相依性時要套用的選項。

packageDependencyContext

類型:PACKAGEDEPENDENCY_CONTEXT*

已新增套件相依性之句柄。 此句柄有效,直到傳遞至 removePackageDependency 為止。

packageFullName

類型:PCWSTR*

當這個方法傳回時,會包含以 Null 終止之 Unicode 字串之指標的位址,指定相依性已解析之封裝的完整名稱。 呼叫者負責釋放此資源,一旦呼叫 HeapFree不再需要資源。

傳回值

類型:HRESULT

如果函式成功,則會傳回 ERROR_SUCCESS。 否則,函式會傳回錯誤碼。 可能的錯誤碼包括下列專案。

傳回碼 描述
E_INVALIDARG packageDependencyIdpackageDependencyContext 參數在輸入時為 NULL。

言論

呼叫此方法會將架構套件相依性解析為系統上的特定套件。 它也會通知作系統架構套件正在使用中,並排處理任何版本更新(有效地延遲卸載或維護舊版,直到您的應用程式完成使用為止)。 套件解析專屬於使用者,而且可以為系統上的不同用戶傳回不同的值。

每次成功 AddPackageDependency 呼叫都會將解析的套件新增至呼叫進程的套件圖形,即使已經存在也一樣。 API 不會套用重複的偵測或篩選(也就是說,來自封裝的多個參考並不有害)。 解決完成之後,套件相依性會維持為該使用者解析,直到該使用者的所有進程最後一次參考都透過 RemovePackageDependency 或進程終止為止。

在此方法成功傳回之後,您的應用程式可以啟動架構套件的類型和使用內容,直到呼叫 removePackageDependency 為止。

如果封裝圖形中有多個套件,其排名與呼叫 addPackageDependency 相同,則解析的套件會以相同排名的其他套件之後新增。 若要在相同排名的其他套件之前新增套件,請為參數 選項指定 AddPackageDependencyOptions_PrependIfRankCollision

如需詳細資訊,請參閱 使用動態相依性 API 在執行時間參考 MSIX 套件

要求

要求 價值
最低支援的用戶端 Windows 11 (於 10.0.22000.0 推出)
標頭 appmodel.h

另請參閱