2011-02-22 51 views
0

我們有一個大的C#應用​​程序,它使用通過Visual Studio 2010(或MSBuild.exe)從.VDProj文件構建的.MSI文件進行部署。正常運行時,.MSI安裝程序將檢查是否安裝了某些軟件,並且滿足某些最低版本,並且會生成有用的錯誤消息,並在未滿足版本條件時退出。從MSI(C#)提取安裝條件

這一切工作正常。但是,我們正在使用msiexec.exe以無提示方式運行現有安裝程序。如果已經安裝了MSI所需的附加軟件,那麼我們會從msiexec中得到一個0錯誤代碼,同樣,如果MSI由於系統中不存在其他軟件或未達到最低版本要求而失敗,我們會得到一個非零錯誤代碼返回。

有沒有什麼辦法以編程方式詢問.MSI文件並找出它的啓動條件是什麼?我嘗試過使用msiexec從.MSI中提取文件,但我仍然看不到任何一種配置文件,它列出了安裝的最低版本要求。

任何幫助將不勝感激。

回答

1

詢問MSI以查看內部條件確實會給出所述條件的列表,但不是哪一個失敗。您可能希望使用/ L運行msiexec以更好地進行日誌記錄(請參閱文檔以獲取更精確的語法)。

如果條件列表足夠了,我建議看看Orca(MSDN),這是一種輕鬆瀏覽.msi文件內部的方法。

+0

非常感謝,JN。/LE開關似乎對我來說工作正常,因爲我真正需要做的是知道安裝是否失敗(我可以從錯誤代碼中得知)以及顯示的錯誤消息是否安裝程序未在/安靜模式(我可以從錯誤日誌中獲取)。 – JamesPD