NSIS卸载程序工作目录

时间:2010-05-12 18:51:11

标签: installer installation nsis uninstall

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

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

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

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

感谢。

1 个答案:

答案 0 :(得分:5)

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

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

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