0

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

请提供解决这些问题的任何想法。您的回答将不胜感激。

4

2 回答 2

0

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

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

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

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

于 2016-08-23T13:33:56.727 回答
0

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

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

这将跳过 MSI 文件检查。

于 2019-01-08T23:35:05.580 回答