所有這些redistributable可能有不同的命令行選項,所以它不可能是一切的一個答案。
目前尚不清楚如何獲得安裝進度。這幾乎肯定不可能或非常困難。你問的是如何運行一個程序來「竊取」其他一些程序的輸出,而且在很多情況下這將是Windows Installer。如果我有一個啓動Windows Form程序的程序,那麼你就會問「如何獲取該程序的內容並竊取輸出消息」。這不是一個安裝問題,它是一個Windows消息/ Windows消息循環問題。
這些設置使用的檢測方法在內部編碼(或配置爲內部數據),因此您還要問所有這些程序中的代碼是如何檢測未安裝依賴項的(在多個操作系統版本和32位和64位),其中一些可能在網絡上可用,但它不太可能適用於每個可再發行組件。
您可能也有EULA的問題。有些可再發行組件需要EULA才能被接受,並且除非它被接受,否則可能不會安裝,或者某些可再發行組件可能包含類似ACCEPTEULA = 1的命令行選項(僅作爲示例)。
基本上你應該:
可以找到所有這些再分發,看看他們是否有一個顯示只有進步的一個選項的命令行選項,然後讓他們顯示。
同樣,看看他們是否有文件,告訴你,如果退出代碼意味着成功與否。
不要打擾試圖找到所有檢測方法 - 只需運行redist,如果目標已經安裝,它將不會執行任何操作。
最後,你正在重新發明車輪。 WiX,Bootstrap Manifest Generator,InstallShield,Advanced Installer(等等)都提供了引導程序,這些程序已經成爲安裝軟件的先決條件。由於存在現有解決方案,因此沒有人再編寫代碼來執行此操作。