NSIS卸载程序工作目录

Jam*_*pen 2 installation installer nsis uninstall

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

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

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

如果我移动可执行文件,它似乎只接受应用程序安装根目录所在的当前目录.我可以把它移到$ INSTDIR,一切都很顺利.

谢谢.

And*_*ers 5

卸载程序中的$ INSTDIR只是卸载程序所在的目录(必须与当前目录不同)

如果您可以将卸载程序放在安装的根目录中,那么这是最好的选择,否则您必须执行一些丑陋的操作strcpy $instdir "$instdir\.."或在每个Delete/RMDir调用中使用define.

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