我有一個使用Visual Studio 2015開發的C++應用程序,以及一個Wix安裝程序和一個Burn引導程序。以前版本的應用程序能夠使用Visual Studio合併模塊來安裝必要的先決條件,但在使用Visual Studio 2015時(看Redistributables for deploying C++ exe developed with Visual Studio 2015 on Windows 7),似乎這不是一個選項。Wix Burn vcredist
按照該鏈接中的建議,我們已經開始使用帶有重要=「是」的ExePackage安裝vcredist和Burn。這大部分效果很好 - 我們有幾個客戶由於vcredist的各種問題而導致安裝失敗。直到最近,這些錯誤都會導致安裝失敗。
在過去的幾天裏,由於安裝了新版本的可再發行版本,我們收到了一些安裝程序失敗的報告:vcredist失敗,錯誤代碼爲0x80070666,導致引導程序失敗。
我的問題是:
- 正在部署vcredist 「正確」 的方法來取? (假設我們需要一個exe安裝程序)
- 我們怎樣才能知道安裝了哪些版本的可再發行組件(不一定在引導程序中,此信息是否以某種用戶可讀的形式存儲)?
- 是否有我們應該分發的可再發行的更新版本? (目前使用14.0.23026)這是基於正在使用的Visual Studio版本進行編譯還是應該始終分發最新版本? (當前VS版本14.0.23107.0)
- 作爲最後的手段,是否有可能檢測從vcredist返回的錯誤代碼並允許該值確定安裝是否繼續或失敗?
太棒了!爲了澄清 - 迄今爲止我們的非正式測試沒有遇到任何問題,即針對針對舊版本編譯的可執行文件(即,我們尚未升級到Visual Studio 2015更新1或2)使用新版本的可再發行組件。這是保證是這種情況,還是我們需要升級Visual Studio之前,我們開始運送新的可再分發? – Runt8
在我的測試中,我沒有發現運行vcredist早期版本的計算機上已安裝vcredist的新版本生成的產品的任何問題。但是,不能保證vcredist的未來版本不會破壞某些東西。我傾向於使用vcredist的最新版本,假設最新版本具有最新的錯誤和安全修補程序等。 – bradfordrg
是否存在可以讀取的註冊表項,以確定當前安裝的版本並將其用作installcondition爲exepackage? 「InstallCondition」 http://wixtoolset.org/documentation/manual/v3/xsd/wix/exepackage.html – tollgen