自定义作类型 17

此自定义作调用用 C 或C++编写的动态链接库(DLL)。

DLL 在当前会话期间随应用程序一起安装。 CustomAction 表的源字段 包含 文件表的键。 自定义作代码的位置取决于此文件的目标路径的解析;因此,必须在安装该文件并删除该文件之前调用此自定义作。

类型值

CustomAction 表的 Type 列中包括以下值 以指定基本数值类型。

常数 十六进制 十进制
msidbCustomActionTypeDll + msidbCustomActionTypeSourceFile 0x011 17

 

目标

该 DLL 通过 CustomAction 表的目标字段中命名的入口点调用,并传递一个参数,该参数是当前安装会话的句柄。 表中指定的入口点名称必须与从 DLL 导出的入口点名称匹配。 请注意,如果条目函数未由 a .DEF 文件或 /EXPORT:链接器规范,名称可能有前导下划线和“@4”后缀。 调用的函数必须指定__stdcall调用约定。

返回处理选项

CustomAction 表的 Type 列中包括可选标志位, 指定返回处理选项。 有关选项和值的说明,请参阅 自定义作返回处理选项

执行计划选项

CustomAction 表的 Type 列中包括可选标志位 以指定执行计划选项。 这些选项控制自定义作的多次执行。 有关选项的说明,请参阅 自定义作执行计划选项

In-Script 执行选项

CustomAction 表的 Type 列中包括可选标志位 以指定脚本内执行选项。 这些选项将作代码复制到执行、回滚或提交脚本中。 有关选项的说明,请参阅 自定义作 In-Script 执行选项

返回值

请参阅 自定义作返回值

言论

调用动态链接库(DLL)的自定义作需要安装会话的句柄。 如果这也是延迟执行自定义作,则执行安装脚本期间会话可能不再存在。 有关此类型的自定义作如何获取上下文信息的信息,请参阅 获取延迟执行的自定义作的上下文信息

自定义作在单独的线程中执行,对系统的访问权限可能有限。 在当前序列或安装会话终止时异步运行的自定义作会阻止主线程,直到它们返回为止。

引用已安装文件的自定义作(如自定义作类型 17(DLL)必须遵循以下排序限制:

  • 自定义作必须在 CostFinalize作之后排序。 这样,自定义作就可以解析找到 DLL 所需的路径。
  • 如果计算机上尚未安装源文件,则必须在 InstallFiles作之后对此类型的延迟(脚本中)自定义作进行排序。
  • 如果计算机上尚未安装源文件,则必须在 InstallFinalize作之后对此类型的非延迟自定义作进行排序。

Custom_Actions

延迟执行自定义作

Dynamic-Link 库