Installation NSIS卸载程序工作目录

Installation NSIS卸载程序工作目录,installation,nsis,uninstallation,Installation,Nsis,Uninstallation,我正在使用NSIS创建我的安装程序/卸载程序,而卸载程序似乎有一种奇怪的行为 我没有将安装程序放在$INSTDIR中,它位于$INSTDIR/subdir/uninstall.exe(它是主机应用程序的附加安装程序) 当我运行安装程序时,它认为应用程序安装根目录是$INSTDIR/subdir,而不是$INSTDIR。然后它无法在subdir/*中找到所有文件,因为它已经在subdir中 如果我移动可执行文件,它似乎只接受当前目录作为应用程序安装根目录。我可以把它移到$INSTDIR,一切都很好

我正在使用NSIS创建我的安装程序/卸载程序,而卸载程序似乎有一种奇怪的行为

我没有将安装程序放在$INSTDIR中,它位于$INSTDIR/subdir/uninstall.exe(它是主机应用程序的附加安装程序)

当我运行安装程序时,它认为应用程序安装根目录是$INSTDIR/subdir,而不是$INSTDIR。然后它无法在subdir/*中找到所有文件,因为它已经在subdir中

如果我移动可执行文件,它似乎只接受当前目录作为应用程序安装根目录。我可以把它移到$INSTDIR,一切都很好


谢谢。

卸载程序中的$INSTDIR正是卸载程序所在的目录(不一定与当前目录相同)

如果您可以将卸载程序放在安装的根目录中,这是最好的选择,否则您必须执行类似于
strcpy$instdir“$instdir\…”
的操作,或者在每次Delete/RMDir调用中使用define

或者,如果在安装期间将install dir保存在注册表中的某个位置,则可以在卸载程序中将其读回