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

相關問題