我有一个具有先决条件的Installshield Basic MSI项目。用户尝试运行setup.exe文件后,将显示先决条件对话框,用户可以按预期成功安装必备组件。
成功安装应用程序后,用户将删除其中一个先决条件。
稍后,用户尝试通过双击setup.exe来修改安装。在继续修改之前,安装会按预期显示先决条件对话框。
但是,如果用户尝试从“添加/删除程序”修改安装(使用更改选项),则安装不会显示先决条件对话框。
我的问题如下: 1.为什么仅在用户单击setup.exe而不是添加/删除程序时才显示先决条件对话框 2.当用户尝试从“添加/删除”程序进行修改并且缺少其中一个先决条件时,预期的行为是什么。
答案 0 :(得分:1)
我不知道在维护模式下重新审视先决条件的任何设置工具。假设您在开始时安装产品的所有先决条件,如果用户不知道他们在那里的原因并不意味着卸载它们。因此,预期的行为是您添加和删除功能。请记住,单独的setup.exe通常会安装先决条件,而不是MSI。
问题包括:
许多先决条件需要管理员权限才能安装,如果应用的当前用户是受限用户,则用户无论如何都无法安装它们。
如果从网络下载了先决条件,并且用户现已断开连接,则无法下载以进行安装。
您可能要添加的功能实际上需要缺少先决条件,这一点并不明显。我知道许多产品的先决条件仅由产品的一小部分使用,因此添加功能并不一定需要其中一个先决条件,因此除非供应商允许您定义地图说明"这些功能需要这些先决条件"然后再次运行先决条件检查是浪费时间。
答案 1 :(得分:0)
从添加/删除程序面板运行安装程序时,行为有所不同,因为您没有运行整个安装程序。
实际上,当您使用InstallShield构建MSI安装程序时,您会得到一个" 磁盘1 "文件夹,包含:
YourProduct.msi
setup.exe
文件ISSetupPrerequisites
(或者你可以获得一个setup.exe文件,其中包含所有这些项目......)
如果我理解正确,msi本身不会检查先决条件,而是由setup.exe检查。
当您通过“添加/删除程序”面板运行MSI时,Windows会查找已自动存储在%WinDir%\Installer
中的msi。问题是只有msi存储在那里,但是setup.exe和先决条件都没有,所以不能检查先决条件,也不能用这种方式安装。
如果您想在安装程序开头检查某些条件,以便在不满足先决条件时中断安装,那么您应该查看" LaunchCondition"动作。
http://helpnet.installshield.com/installshield16helplib/IHelpProdCondition.htm