我正在使用较旧的 InstallShield 2010 安装程序。它放下从 programfiles\installshield 引用的 DLLWRAP。有两个自定义操作在安装完成后调用函数 DLLWrapCleanup,在 SetupCompleteSuccess 后调用函数 DLLWrapStartup。
任何人都可以解释这是什么以及它的作用 - 或者即使它是需要的?谢谢。
我正在使用较旧的 InstallShield 2010 安装程序。它放下从 programfiles\installshield 引用的 DLLWRAP。有两个自定义操作在安装完成后调用函数 DLLWrapCleanup,在 SetupCompleteSuccess 后调用函数 DLLWrapStartup。
任何人都可以解释这是什么以及它的作用 - 或者即使它是需要的?谢谢。
正如Installsheild 帮助在此处描述的那样:它是一个帮助 DLL,用于来自标准 DLL 的自定义操作。
如果您将自定义操作从“标准”更改为“msi dll”,您可以从 ISM 中删除 DLL 和 dllwrap 操作。
Stefan Krueger在这里描述了不同之处。
“MSI DLL”是导出与 MSI 文档中定义的原型相匹配的函数的 DLL。这是 Windows Istaller 可以直接用作自定义操作的唯一 DLL 类型。
“标准 DLL”可以(实际上)具有任何原型。InstallShield 在其周围添加了一个包装器,该包装器仅显示 Windows Installer MSI DLL 接口并将所有附加参数转换为属性。所以本质上你的 cuatom 动作调用了一个 DLL(由 InstallShield 提供),它调用了另一个 DLL(你的标准 DLL)。
就个人而言,当我几年前开始这样做时,我使用了标准 DLL。当我了解到差异时,我转而使用 MSI DLL。