AddPackageDependency 函数 (appmodel.h)
使用 TryCreatePackageDependency 方法添加前面创建的框架包依赖项的运行时引用和指定选项。 此方法成功返回后,应用可以激活类型并使用框架包中的内容。
语法
HRESULT AddPackageDependency(
PCWSTR packageDependencyId,
INT32 rank,
AddPackageDependencyOptions options,
PACKAGEDEPENDENCY_CONTEXT *packageDependencyContext,
PWSTR *packageFullName
);
参数
packageDependencyId
类型: PCWSTR
要解析并添加到调用进程的包图的包依赖项的 ID。 此参数必须与通过使用 TryCreatePackageDependency 函数通过) CreatePackageDependencyOptions_ScopeIsSystem 选项对调用用户或系统 (定义的 包 依赖项匹配,否则返回错误。
rank
类型: INT32
用于将解析的包添加到调用方包图的排名。 有关详细信息,请参阅备注。
options
类型: AddPackageDependencyOptions
添加包依赖项时要应用的选项。
packageDependencyContext
类型: PACKAGEDEPENDENCY_CONTEXT*
添加的包依赖项的句柄。 此句柄在传递到 RemovePackageDependency 之前有效。
packageFullName
类型: PCWSTR*
此方法返回时,包含指向以 null 结尾的 Unicode 字符串的指针的地址,该字符串指定已解析依赖项的包的全名。 调用 HeapFree 不再需要此资源后,调用方负责释放此资源。
返回值
类型: HRESULT
如果函数成功,则返回 ERROR_SUCCESS。 否则,函数将返回错误代码。 可能的错误代码包括以下内容。
返回代码 | 说明 |
---|---|
E_INVALIDARG | packageDependencyId 或 packageDependencyContext 参数在输入时为 NULL。 |
注解
调用此方法会将框架包依赖项解析为系统上的特定包。 它还会通知 OS 框架包正在使用中,并以并行方式处理任何版本更新, (有效地延迟卸载或以其他方式维护旧版本,直到应用) 完成使用它。 包解析特定于用户,可以为系统上的不同用户返回不同的值。
每次成功的 AddPackageDependency 调用都会将解析的包添加到调用进程的包图中,即使已存在也是如此。 API (没有应用重复的检测或筛选,即来自包的多个引用) 无害。 解析完成后,包依赖项将一直为该用户解析,直到通过 RemovePackageDependency 删除该用户所有进程中的最后一个引用或进程终止。
此方法成功返回后,应用可以激活类型并使用框架包中的内容,直到调用 RemovePackageDependency 。
如果包图中存在与 调用 AddPackageDependency 相同的级别相同的包,则默认情况下 (已解析的包) 添加到同一级别的其他包之后。 若要在相同级别的其他包之前添加包,请为 options 参数指定AddPackageDependencyOptions_PrependIfRankCollision。
有关详细信息,请参阅 在运行时使用动态依赖项 API 引用 MSIX 包。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | ) 10.0.22000.0 中引入Windows 11 ( |
标头 | appmodel.h |