我有一个64位的dll,我可以用regsvr32从命令提示符注册。但问题是,当我试图通过nsis脚本注册我的dll未注册。我在nsis脚本中使用了RegDLL命令。有人知道是什么问题吗?
你可以使用rundll32.exe:
ExecWait '"$SYSDIRrundll32.exe" $INSTDIRmydll.dll DllRegisterServer'
rundll32.exe是足够聪明的启动自己的64位版本,如果你运行它与64位的dll
众所周知,除了最简单的场景,RegDLL在任何情况下都是有问题的。谷歌site:forums.winamp.com nsis
就是一个例子。
要确保你的DLL、类型库、BHO等的注册成功,你应该使用InstallLib
。它为x64库安装提供了一个选项(还有更多!)
关于使用NSIS安装库的详细信息,请参阅http://nsis.sourceforge.net/Docs/AppendixB.html#B.1
ExitWait未找到NSIS脚本。ExitWait代替ExecWait
你可以使用:
ExecWait '"$SYSDIRrundll32.exe" $INSTDIRmydll.dll DllRegisterSe