2016-07-25 20 views
0

簡短版 -我有一個MSI文件,其中包含一個TreeView對象,用於指定要包含在安裝中的模塊。這些可以使用命令行參數傳遞,但不幸的是作者沒有發佈用於自動安裝的組件列表。有什麼方法可以從MSI文件中提取TreeView對象以及相關的友好名稱或說明如何從.MSI文件的樹視圖對話框中提取節點

我曾嘗試使用Orca提取組件表,其中包含來自.MSI的組件名稱,但它不包含用戶界面的TreeView部分中可見的友好名稱或描述。

背景(你可以跳過此)

我有自己的MSI文件的一套安裝包。每個都由我無法通信的團隊創建的單個Setup.exe依次調用。自動完成安裝,我可以通過調用

Setup.exe [/productinstallerargs=args]

但是通過我想安裝相關的MSI文件的組成部分,由作者發表的組件列表中沒有被2年更新一次,而有有是一些新的構建和增加的組件。爲了使用無提示安裝(包括所需的組件)自動化更新的版本,我需要一個組件名稱列表以及它們的友好名稱傳遞給Setup.exe。友好名稱是人們部署軟件可以理解的名稱。

我這樣做的最明顯的方法是從MSI中獲取TreeView對象,該對象鏈接到組件名稱和友好名稱。一旦我爲每個組件提供了這兩個名稱,就可以列出工程師需要安裝的組件的友好名稱,並使用它們需要的所有軟件包進行靜默安裝,並生成正確的參數。因此,通過從MSI或任何其他方法中提取TreeView對象來獲得與組件名稱相符的友好名稱將非常感謝。

+0

您可以嘗試使用dark.exe將MSI反編譯爲wxs文件。它可能會保留所有功能啓用條件和內容,爲您完成所有功能組件映射。 –

回答

1

您可能會誤解您的術語。在大多數標準安裝中,要安裝的可選部件列表位於功能表中。組件主要是將單個文件捆綁到功能中。

功能表具有樹視圖 - 請參閱功能和Feature_Parent列 - 標題和說明是功能的友好名稱和說明。

+0

現貨。當我看到Component表中的每個附加模塊時,我都認爲這是我想要的。 –