使用 TryCreatePackageDependency 方法(具有指定选项)为之前创建的框架包依赖项添加运行时引用。 此方法成功返回后,应用可以激活类型并使用框架包中的内容。
另请参阅 AddPackageDependency2。
语法
HRESULT AddPackageDependency(
PCWSTR packageDependencyId,
INT32 rank,
AddPackageDependencyOptions options,
PACKAGEDEPENDENCY_CONTEXT *packageDependencyContext,
PWSTR *packageFullName
);
参数
packageDependencyId
类型:PCWSTR
要解析的包依赖项的 ID,并将其添加到调用进程的包图中。 此参数必须与调用用户或系统(通过 CreatePackageDependencyOptions_ScopeIsSystem 选项)使用 TryCreatePackageDependency 函数定义的包依赖项匹配,否则将返回错误。
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 |