我们正在使用Intall4j(6.1.6),当用户尝试安装我们产品的组件而不是在目录中时,我们在卸载阶段遇到问题。
当这种情况发生时(例如,用户在C:\Program Files
上安装了产品而不是在C:\Program Files\MyApp
等自定义目录中) - 卸载阶段也将尝试删除程序文件。这是因为我们添加了一个配置以确保所有组件都被正确删除(还包括一些临时文件和父目录)。
我们的安装在Windows和Windows上运行Linux和每个环境都有自己的默认安装目录。我想要的是能够设置(更好地说 - '强制')一个常量目录到每个默认安装目录(用户在安装时无法更改 - 例如 - 无论你在哪里安装它,它总是在里面' MyApp'目录),所以如果任何人安装不在目录中的产品,卸载阶段将不会删除父目录。
答案 0 :(得分:0)
首先,即使用户直接安装到C:\Program Files\
,卸载程序也不会删除该目录中的所有文件 - 只删除安装程序创建的文件。
为强制使用特定目录结构,请使用"验证脚本" "安装位置"屏幕,例如:
if (file.equals(WinFileSystem.getProgramFilesDirectory())) {
Util.showWarningMessage(
"This directory is not allowed as an installation directory");
return false;
} else {
return true;
}