如果已安装应用程序,Installshield将跳过自定义操作

时间:2016-08-02 13:51:36

标签: installshield-2015

我创建了一个基本的MSI项目,它将在机器上安装很少的应用程序。我的第一步是将几个文件夹和文件复制到目标计算机。然后我创建了两个自定义操作来运行exe文件。如果已在计算机上安装该特定应用程序,我想跳过自定义操作。另外,在复制文件夹和文件时,如果机器上已存在文件夹或文件,我想跳过。我尝试使用安装条件,条件构建器,系统搜索,但我无法解决它。

请提供解决这些问题的任何想法。非常感谢您的回答。

2 个答案:

答案 0 :(得分:0)

所有这一切都可以通过使用System Search.Refer(http://helpnet.flexerasoftware.com/isxhelp22/helplibrary/NewLaunchCondition.htm

来解决

1)要检查文件是否存在,请选择(文件路径,通过搜索文件夹),输入文件名,选择目录并根据提到的目录分配深度。 假设A.txt存在于\ B \ C文件夹中,并且您在搜索时选择B,则深度应为> = 2。如果文件存在,则此过程中提到的属性将使用文件路径进行设置。

2)要检查文件夹是否存在,请选择(文件夹路径,通过在特定文件夹中搜索),按照上述步骤提及文件夹名称而不是文件名。

3)要检查是否安装了应用程序,您可以按照上述过程进行检查,并查找特定于应用程序的文件夹/文件。 最后,使用公共属性作为自定义操作和组件的条件。假设您正在检查文件并设置属性ASONFILEFOUND,只需在组件/自定义操作条件中提及,如果文件存在则不会运行。 如果仍然遇到问题,请启用Windows日志记录并查看日志以检查系统搜索中使用的属性是否已设置。

答案 1 :(得分:0)

Execute-MSI-动作安装-Path'AcroRead.msi'-Transform'Settings.mst'-参数'/ q / norestart'-SkipMSIAlreadyInstalledCheck

使用此命令。如果您使用Powershell进行安装。

这将跳过MSI文件检查。