Hii ppl我試圖在命令提示符下傳遞參數thro msiexec。問題是,即使參數正確傳遞,該值也不會反映在OnBeforeInstallEvent中。因此,msi不會被安裝。無法通過命令提示符將參數傳遞給MSI thro Msiexec
的OnBeforeInstall被寫入C#的.NET Framework 2.09(VS 2005)和事件呼叫在下面給出,
串SERVERNAME = Context.Parameters [ 「SERVERNAME」]。
例如,在自定義操作中,參數被正確聲明爲/ SERVERNAME = [SERVERNAME]以便訪問服務器名稱。
當我通過參數Thro Msiexec的值不會反映在OnBeforeInstall事件時,我安裝Thro正常UI模式沒有問題。我甚至嘗試記錄MSIEXEC/Log安裝流程,數值在日誌中改變(如下所示)
PROPERTY CHANGE:添加SERVERNAME屬性。它的值是'machine1'。
我給msiexec命令我使用將值傳遞下面,
MSIEXEC.EXE/I 「C:\ Server.msi」/升* V 「C:\ Server.txt」 ALLUSERS = 1重新啓動= ReallySupress TARGETDIR = 「C:\ Program Files文件\服務器」 SERVERNAME = 「MACHINE1」 PORT = 「9090」
,但是在達到ONBeforeInstall爲空值(下圖顯示)。
錯誤1001. Server.ServicesInstaller的OnBeforeInstall事件處理程序中發生異常。 - >由於未提供某些安裝參數,因此無法繼續安裝。 更多信息 - 服務器名稱不能爲空。 DEBUG:錯誤2769:自定義操作_542E7AC5_7403_434A_874B_DE2872A4848D.install未關閉1個MSIHANDLE。 安裝程序在安裝此軟件包時遇到意外錯誤。這可能表明此軟件包存在問題。錯誤代碼是2769.
此外,操作系統是Win 2003。我甚至在Win XP中嘗試過Msiexec仍然沒有去。 SERVERNAME是安裝工具包的TextBox2對話框中某個文本框的屬性名稱。觀察安裝日誌時,屬性更改事件正在識別SERVERNAME的值更改,但在達到OnBeforeInstall事件時變爲空。
如前所述,它在正常UI模式下完美工作。我甚至嘗試修改Server.msi的ORCA屬性表(如下所示)。
表:房產 行:SecureCustomProperties屬性 - > SecureCustomProperties Changed值從NEWERPRODUCTFOUND到NEWERPRODUCTFOUND; SERVERNAME
仍然沒有去
請幫助。
非常感謝,
byfour