2

我想在安装主窗口安装程序文件之前安装自定义的exe文件。如何在自定义操作序列中安装主应用程序之前对无声安装程序.exe文件进行排序?

我正在使用Install Sheild Limited Edition。在配置完所有我在静默安装程序文件中定制的“自定义操作的注册产品阶段”后,它给了我错误1618(这是另一个安装正在进行中)。我知道主安装程序正在进行中,因此它不允许无声的安装程序.msi来安装,但不知道如何解决这个错误。

但问题是我选择源位置为“文件中存在目标计算机上”和文件位置为“INSTALLDIR”。

一旦这样做,我得到一个错误,1618

谁能帮我解决呢?

SilentInstaller.exe文件中的代码如下:

Process processObj = Process.Start("msiexec.exe", @"/i "folderpath\SqlLocalDB.msi" /qn IACCEPTSQLLOCALDBLICENSETERMS=YES"); 
          //Loop until the process has exited 
          do 
          { 
           //refresh the process 
           processObj.Refresh(); 
          } while (!processObj.WaitForExit(1000)); 

我已经验证的路径和一切,但只有在序列中得到击中。

任何帮助将不胜感激。谢谢。

回答

2

Windows安装程序会强制执行一个互斥锁,以防止您正在尝试执行的操作。由于您使用的是InstallShield Limited Edition,因此您只能使用它们提供的PRQ。但是,如果您将InstallShield Pro/Prem放在虚拟机上,您可以使用它来生成PRQ文件,然后将它带入您的Limited Edition项目。这会导致setup.exe在运行MSI之前运行MSI,从而避免互斥。

http://blog.iswix.com/2006/11/using-installshield-12-to-install-net.html

相关问题