【问题标题】:Installshield skip custom action if an application is already installed如果已安装应用程序,Installshield 跳过自定义操作
【发布时间】:2016-08-02 13:51:36
【问题描述】:

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

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

【问题讨论】:

    标签: installshield-2015


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      执行-MSI -Action Install -Path 'AcroRead.msi' -Transform 'Settings.mst' -Parameters '/q /norestart' -SkipMSIAlreadyInstalledCheck

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

      这将跳过 MSI 文件检查。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        • 2014-10-14
        • 2021-08-15
        • 2012-09-30
        • 1970-01-01
        相关资源
        最近更新 更多