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 | packageDependencyId 或 packageDependencyContext 參數在輸入時為 NULL。 |
言論
呼叫此方法會將架構套件相依性解析為系統上的特定套件。 它也會通知作系統架構套件正在使用中,並排處理任何版本更新(有效地延遲卸載或維護舊版,直到您的應用程式完成使用為止)。 套件解析專屬於使用者,而且可以為系統上的不同用戶傳回不同的值。
每次成功 AddPackageDependency 呼叫都會將解析的套件新增至呼叫進程的套件圖形,即使已經存在也一樣。 API 不會套用重複的偵測或篩選(也就是說,來自封裝的多個參考並不有害)。 解決完成之後,套件相依性會維持為該使用者解析,直到該使用者的所有進程最後一次參考都透過 RemovePackageDependency 或進程終止為止。
在此方法成功傳回之後,您的應用程式可以啟動架構套件的類型和使用內容,直到呼叫 removePackageDependency 為止。
如果封裝圖形中有多個套件,其排名與呼叫 addPackageDependency 相同,則解析的套件會以相同排名的其他套件之後新增。 若要在相同排名的其他套件之前新增套件,請為參數 選項指定 AddPackageDependencyOptions_PrependIfRankCollision。
如需詳細資訊,請參閱 使用動態相依性 API 在執行時間參考 MSIX 套件。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 11 (於 10.0.22000.0 推出) |
標頭 | appmodel.h |