我正在重构一个旧的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中的文件夹时,安装程序正常工作,但如果我没有,则会失败。
答案 0 :(得分:1)
这里最简单的InstallShield方法是使用支持文件代替二进制表条目或者除了二进制表条目之外。 Windows Installer仅为自定义操作提取单个DLL,但如果您在SUPPORTDIR
中引用文件,则可以使用多个。