TryCreatePackageDependency 函数 (appmodel.h)

使用指定的包系列名称、最低版本和其他条件为当前应用的框架包依赖项创建安装时间引用。

Syntax

HRESULT TryCreatePackageDependency(
  PSID                                    user,
  PCWSTR                                  packageFamilyName,
  PACKAGE_VERSION                         minVersion,
  PackageDependencyProcessorArchitectures packageDependencyProcessorArchitectures,
  PackageDependencyLifetimeKind           lifetimeKind,
  PCWSTR                                  lifetimeArtifact,
  CreatePackageDependencyOptions          options,
  PWSTR                                   *packageDependencyId
);

参数

user

类型: PSID

包依赖项的用户范围。 如果为 NULL,则使用调用方的用户上下文。 如果指定 了CreatePackageDependencyOptions_ScopeIsSystem, 则必须为 NULL。

packageFamilyName

类型:PCWSTR

要依赖的框架包的包系列名称。

minVersion

类型:PACKAGE_VERSION

要依赖的框架包的最低版本。

packageDependencyProcessorArchitectures

类型: PackageDependencyProcessorArchitectures

包依赖项的处理器体系结构。

lifetimeKind

类型: PackageDependencyLifetimeKind

用于定义包依赖项生存期的项目类型。 有关详细信息,请参阅备注。

lifetimeArtifact

类型:PCWSTR

用于定义包依赖项生存期的项目的名称。 如果 lifetimeKind 参数 PackageDependencyLifetimeKind_Process,则必须为 NULL。 有关详细信息,请参阅备注。

options

类型: CreatePackageDependencyOptions

创建包依赖项时要应用的选项。

packageDependencyId

类型: PWSTR*

此方法返回时,包含指向以 null 结尾的 Unicode 字符串的指针的地址,该字符串指定新包依赖项的 ID。 调用方负责释放此资源,只需调用 HeapFree即可释放该资源。

返回值

类型:HRESULT

如果函数成功,则返回 ERROR_SUCCESS。 否则,该函数将返回错误代码。 可能的错误代码包括以下内容。

返回代码 Description
E_INVALIDARG packageDependencyId 参数在输入时为 NULL。

注解

在应用的安装程序或首次运行应用期间,调用此方法以指定要在应用中使用的框架包的一组条件。 这会通知 OS 你的应用依赖于满足指定条件的框架包。 如果安装了符合条件的一个或多个框架包,Windows 将确保至少一个这些框架包将一直安装,直到删除安装时引用。 有关详细信息,请参阅 使用动态依赖项 API 在运行时引用 MSIX 包。

如果指定的依赖项条件无法解析为特定包,则此函数将失败。 如果为 options 参数指定了CreatePackageDependencyOptions_DoNotVerifyDependencyResolution,则会跳过此包解析检查。 这对于作为目标用户以外的用户上下文运行的安装程序非常有用(例如,作为 LocalSystem 运行的安装程序)。

要求

Requirement 价值
最低支持的客户端 Windows 11 (10.0.22000.0 中引入)
Header appmodel.h
Library OneCoreUAP.Lib

另请参阅

使用动态依赖项 API 在运行时引用 MSIX 包