AddPackageDependency 函数 (appmodel.h)

使用 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 packageDependencyIdpackageDependencyContext 参数在输入时为 NULL。

言论

调用此方法会将框架包依赖项解析为系统上的特定包。 它还通知作系统框架包正在使用中,并并行处理任何版本更新(有效地延迟卸载或其他为旧版本提供服务,直到应用使用完毕)。 包解析特定于用户,可以为系统上的不同用户返回不同的值。

每次成功 AddPackageDependency 调用都会将解析的包添加到调用进程的包图(即使已存在)。 API 未应用重复检测或筛选(即包中的多个引用不有害)。 解析完成后,包依赖项会一直为该用户解析,直到通过 RemovePackageDependency 删除该用户的所有进程的最后一个引用,否则进程将终止。

此方法成功返回后,应用可以激活类型并使用框架包中的内容,直到调用 removePackageDependency

如果包图中存在多个包,其级别与调用 AddPackageDependency相同,则解析的包将(默认情况下)添加到同一排名的其他包之后。 若要在相同排名的其他包之前添加包,请为 选项 参数指定 AddPackageDependencyOptions_PrependIfRankCollision

有关详细信息,请参阅 使用动态依赖项 API 在运行时引用 MSIX 包。

要求

要求 价值
最低支持的客户端 Windows 11 (10.0.22000.0 中引入)
标头 appmodel.h

另请参阅