无法通过nsis脚本注册我的64位dll?

时间:2011-10-01 04:30:58

标签: nsis dllregistration

我有一个64位的dll,我可以使用regsvr32从命令提示符注册。但问题是,当我尝试通过nsis脚本注册我的dll时,它没有注册。我在nsis脚本中使用了 RegDLL 命令。谁知道问题可能是什么?

3 个答案:

答案 0 :(得分:3)

除了最简单的场景之外,已知RegDLL在任何问题上都存在问题。以Google site:forums.winamp.com nsis为例。

为了确保成功注册DLL,类型库,BHO等,您应该使用InstallLib。它提供了x64库安装的选项(以及更多!)

有关使用NSIS安装库的更多详细信息,请参阅http://nsis.sourceforge.net/Docs/AppendixB.html#B.1

答案 1 :(得分:3)

您可以改为使用rundll32.exe

ExecWait '"$SYSDIR\rundll32.exe" $INSTDIR\mydll.dll DllRegisterServer'
如果你使用64位dll运行它,那么rundll32.exe足够聪明,可以启动自身的64位版本

答案 2 :(得分:2)

ExitWait找不到NSIS脚本。 ExitWait而不是ExecWait。

你可以使用:

ExecWait'" $ SYSDIR \ rundll32.exe" $ INSTDIR \ mydll.dll DllRegisterSe