2010-03-26 42 views
2

使用Windows MSI文件,有沒有辦法在.NET代碼中獲取所有可能的安裝參數?我需要製作一個通用用戶界面,以便在運行時配置多個未知的MSI文件 - 然後一起安裝它們。MSI參數檢查

回答

1

從技術上講,您可以在命令行上提供任何公共屬性,no。您也可以使用MSI轉換更新私有屬性。您可以枚舉現有的屬性(公共或私有),但無法知道安裝程序本身如何處理它們。

如果您想知道如何下載Windows SDK。包括大量的VBS腳本,它們顯示瞭如何使用Windows Installer API。從那裏你可以使用普通的SQL,例如Select * from Properties

+0

這很好 - 我只是想知道如何枚舉它們。有任何想法嗎? – 2010-03-29 08:12:05

1

Windows安裝程序包是可輕鬆反映的數據庫。 WiX DTF有一個Microsoft.Deployment.WindowsInstaller命名空間,其中有可以完成該操作的類。從那裏你只需編寫你的.NET代碼來處理你的所有需求,並且只需要以這種方式進行反射/插件定向即可。

有一些引導程序項目(CodePlex)可以這樣做,但使用預先生成的XML文件來描述MSI。