NSIS 卸载程序工作目录
Posted
技术标签:
【中文标题】NSIS 卸载程序工作目录【英文标题】:NSIS Uninstaller Working Directory 【发布时间】:2011-02-18 19:03:12 【问题描述】:我正在使用 NSIS 创建我的安装程序/卸载程序,而卸载程序的行为似乎很奇怪。
我没有将安装程序放在 $INSTDIR 中,它位于 $INSTDIR/subdir/uninstall.exe(它是主机应用程序的插件安装程序)。
当我运行安装程序时,它认为应用程序安装根目录是 $INSTDIR/subdir 而不是 $INSTDIR。然后它无法找到 subdir/* 中的所有文件,因为它已经在 subdir 中。
如果我移动可执行文件,它似乎只是接受当前目录作为应用程序安装根目录的位置。我可以将其移至 $INSTDIR,一切都很好。
谢谢。
【问题讨论】:
【参考方案1】:卸载程序中的$INSTDIR只是卸载程序所在的目录(不一定与当前目录相同)
如果您可以将卸载程序放在安装的根目录中,那是最好的选择,否则您必须做一些丑陋的事情,例如 strcpy $instdir "$instdir\.."
或在每个 Delete/RMDir 调用中使用定义。
或者,如果您在安装过程中将安装目录保存在注册表中的某个位置,您可以在卸载程序中重新读取它。
【讨论】:
以上是关于NSIS 卸载程序工作目录的主要内容,如果未能解决你的问题,请参考以下文章
如何在NSIS卸载时线运行一个EXE文件?(EXE文件在卸载程序目录下)用啥代码?