如何在自定义操作序列中安装主应用程序之前对Silent Installer .exe文件进行排序?

时间:2017-08-16 10:09:59

标签: visual-studio-2015 windows-installer installshield silent-installer installshield-le

我正在尝试在安装主Windows安装程序文件之前安装自定义exe文件。

我正在使用Install Sheild限量版。在配置完所有内容之后,我已经在"注册产品阶段"之后对我的静默安装程序文件进行了排序。自定义操作,它给了我错误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));

我已经验证了路径和所有内容,但只是在序列中被击中了。

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

1 个答案:

答案 0 :(得分:2)

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

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