在NSIS做"RmDir/r $ INSTDIR"是否安全?

Cug*_*uga 10 installer nsis

我在NSIS RmDir方法的文档中注意到了这个警告:

警告:在卸载程序中使用RMDir/r $ INSTDIR是不安全的.虽然不太可能,但用户可能会选择安装到Program Files文件夹,因此该命令将清除整个Program Files文件夹,包括与卸载程序无关的其他程序.

这让我感到害怕,因为直到现在我还没有考虑过这种可能性,而且我的脚本中有这么一条线.但是,当我测试是否会通过将我的程序安装到包含预先存在的文件的预先存在的位置然后RmDir /r /REBOOTOK $INSTDIR在其中运行我的卸载程序来实现这一点时,现有文件保持不受损害.

这是一个过时的警告吗?我正在使用NSIS v.2.66.

谢谢

And*_*ers 7

如果可以,RmDir/r将删除整个目录树,因此它是"不安全的".请参阅http://nsis.sourceforge.net/Uninstall_only_installed_files以获取仅删除您安装的文件的方法

  • 这种只卸载已安装文件的方法太复杂了。我知道这是我的意见,我真的认为应该有一种更简单的方法来做到这一点。它太容易出错并且需要太多的代码行。 (3认同)