我使用DeployMaster爲使用Qt編寫的C++編寫的32位Windows應用程序構建安裝程序。如何通過註冊表確定32位Visual Studio 2013可再發行組件是否可靠地安裝在用戶機器上?
在運行此應用程序之前,可執行文件依賴於Visual Studio 2013可再發行組件(即32-bit Visual Studio 2013 redistributable必須由最終用戶安裝)。
我已經使用了Google,並查看了其他StackOverflow問題。特別是,this link provides the exact Registry key to check,但對VS的情況下,2008年
我需要VS 2013,不是VS 2008
然而,理想情況下這將是一個可靠的註冊表檢查 - 不是編程解決方案 - 因爲我可以很容易地使用DeployMaster安裝程序檢查註冊表項。 (如果確定系統沒有安裝可再發行組件,安裝程序也可輕鬆讓DeployMaster安裝程序啓動。)
有沒有人知道一個可靠的方法,最好使用註冊表項,以使其成爲可能以確定32位VS 2013可再發行組件是否安裝在最終用戶的機器上?
可能工作到這出自己:一臺機器上運行SysInternal的procmon中(可以是虛擬的)沒有尚未安裝的REDIST並開始安裝。這將顯示它創建的任何註冊表項。選擇合適的(如HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall或HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ S-1-5-18 \ Products中的那些),就完成了。 – stijn
我認爲關鍵是'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ DevDiv \ vc \ Servicing \ 12.0 \ RuntimeMinimum'(檢查Install = 1),但我想確認這個或任何答案是可靠的* 。好的想法(儘管爲什麼程序員爲了查看是否安裝了一個基本的Microsoft運行時系統而被迫執行這一級別的工作?這是微軟方面的又一次失敗)。 –
是的,這個鍵也可能被使用 - 儘管它並不完全符合指向的手指。最後總是有人錯,我還可以聲稱它是DeployMaster的錯,因爲它們讓你自己想出來:P因爲例如InstallShield具有內置於VC redists的此功能IIRC – stijn