2
我試圖讓我的應用程序確定是否在用戶的系統上安裝了Microsoft Visual C++ 2013 Redistributable。我已經通過回答here,here觀看,here,但它看起來像所有的答案分爲兩大類:如何快速而可靠地確定是否安裝了Visual C++ 2013 Runtime
- 檢查註冊表:這是不是一種選擇,因爲如果Visual Studio是安裝或Visual C++ 已被刪除,你會得到誤報。這是
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
,HKLM\SOFTWARE\Microsoft\VisualStudio\12.0\VC
和HKLM\SOFTWARE\Wow6432Node\Microsoft\DevDiv\VC
的情況。使用wmic product get
或new ManagementObjectSearcher("SELECT * FROM Win32_Product")
- 使用WMI /檢查系統表。這是可靠的,但非常慢(40+秒),因爲它看起來像在系統返回結果之前必須加載安裝在系統上的所有產品。
當再分發安裝程序運行時,安裝程序是很快能夠確定組件是否已經安裝:
或未安裝:
什麼是最快的方式來做到這一點,即仍然可靠?理想情況下,我想知道:Microsoft如何快速完成此操作?我能這樣做嗎?
你可以使用一個合併模塊? –
@ DanielA.White我不熟悉合併模塊,但是我對它們做了一些簡單的研究,它看起來像只適用於.msi文件,但應用程序是一個.exe文件。有沒有辦法與我錯過的.exe文件做到這一點? –