0

我正在重构一个旧的 installshield 应用程序,我需要执行一个从自定义 dll 调用函数的操作。不幸的是,此操作执行的功能取决于另一个自定义 dll。所以我的问题是:“是否有可能让自定义 dll 依赖于另一个自定义 dll,如果可以,如何?”

当我尝试运行安装程序时,它崩溃并出现错误“安装程序在完成之前被中断......”然后我将第二个自定义 dll 复制到我添加到 PATH 的文件夹中,一切正常。当然,我不能指望我的客户手动完成。

我正在使用 Installshield 2008,但我相信我的问题的答案对于所有版本都是相同的。

编辑:也许我的问题不够清楚,我将举个例子:假设我有一个具有功能的.dll:

UINT __stdcall
PerformAction(MSIHANDLE hInstall)    // IN
{
  ...
  help();
  ...
}

help() 在 b.dll 中定义。现在,当我创建一个新操作时,我将它的 dll 设置为 a.dll,并将它的函数名称设置为 PerformAction,但是无法表明这取决于 b.dll 当我将 b.dll 复制到 PATH 安装程序中包含的文件夹时工作正常,但如果我不这样做,它会失败。

4

1 回答 1

1

此处最简单的 InstallShield 方法是使用支持文件来代替二进制表条目或在二进制表条目之外使用。Windows Installer 只会为自定义操作提取单个 DLL,但如果您在 中引用一个文件SUPPORTDIR,它可以使用多个。

于 2012-05-11T11:50:21.890 回答