2010-01-21 142 views
1

我正在研究能夠安裝2個工具的MSI文件。這兩個工具都是從exe文件安裝的,但可以通過 這樣的參數靜默啓動,例如/ SI 我可以在沒有任何問題的情況下構建項目,而不會發出警告......解除安裝也可以正常工作。 如果我雙擊我的MSI文件,這兩個軟件都是沒有問題....安裝然後 我可以毫無問題卸載......通過msiexec/i ..安裝MSI/qn

,但如果我用我的啓動MSI文件MSIEXEC/I mymsi.msi/QN這次只安裝了第一個軟件TOOL-A ...然後沒有別的。 你可以看到我下面的配置: 工具 - 自定義操作

Tool-A Custom Actions: 
Executable Filekey: setup.exe 
Command Line: /SI 
Return Processiong: Synchronous (check exit code) 
In-Script Execution: Immediate Execution 

Execution Scheduling: Execute only once 
Install UI Sequence: After ExecuteAction 
Install UI Condition: Not Installed 
Install Exec Sequence: After InstallFinalize 
Install Exec Condition: Not Installed 
Advertise Exec Sequence: Absent from sequence 
Admin UI Sequence: <Absent from sequence> 
Admin Exec Sequence: <Absent from sequence> 
MSI Type Number 274 

而對於第二個工具(使用MSIEXEC從未安裝)

Tool-B custom action 
Executable Filekey: setup.exe1 
Command Line: /q 
Return Processiong: Synchronous (check exit code) 
In-Script Execution: Immediate Execution 
Execution Scheduling: Execute only once 
Install UI Sequence: After tool-A 
Install UI Condition: Not Installed 
Install Exec Sequence: After tool-A 
Install Exec Condition: Not Installed 
Advertise Exec Sequence: <Absent from sequence> 
Admin UI Sequence: <Absent from sequence> 
Admin Exec Sequence: <Absent from sequence> 
MSI Type Number 274 

所以,如果有人能幫助我嗎?取消:如果MSI通過雙擊啓動沒有問題:安裝了tool-A和tool-B! 如果我使用Msiexec/i mymsi.msi/qn只是安裝工具-A!

回答

0

我同意邁克爾,你會發現Tool-B的安裝使用Windows Installer服務。當您的安裝執行順序正在運行時,正在進行交易。在安裝程序版本4.5之前,安裝程序不允許同時發生兩個事務,這將阻止工具-B的安裝運行。

從版本4.5開始,有一些神奇使得這成爲可能。實際上,它可以讓你告訴安裝程序「嘿,我希望你執行的其他安裝事務是我的事務的一部分,因此,將它們合併爲一個事務,謝謝。

這是要參考文檔:

http://msdn.microsoft.com/en-us/library/bb736322%28VS.85%29.aspx

0

在詳細日誌文件中是否有任何跡象表明發生了什麼? (msiexec /i mymsi.msi /qn /l*v verbose.log)我的猜測是工具-B使用MSI進行安裝,因此無法從執行順序安全地安裝。即使它表示失敗,當您使用/ qn運行並在InstallFinalize之後計劃時,這也不會回滾外部安裝。當然,如果它不表示失敗,將很難說出發生了什麼。也許看看Tool-B的命令行是否支持採取某種日誌。