2009-06-22 56 views
1

我一直在試圖查詢Window(XP和Vista)以查看是否有任何版本的我們的軟件包與UpgradeCode一起安裝(在這種情況下,UpgradeCode是唯一的從版本到版本的靜態GUID)。我試圖用WMI和WindowInstaller.Installer對象來做到這一點,但沒有成功。我必須從C#編寫這個查詢。感謝您提供的任何幫助或指導。查詢Windows是否安裝了UpgradeCode應用程序

回答

1

您需要使用MSI.DLL中的MsiEnumRelatedProducts函數。此鏈接介紹如何使用它:

http://msdn.microsoft.com/en-us/library/aa370103(VS.85).aspx

它是一個非託管的DLL,所以你需要的DllImport它。我在VB.net中使用它來檢查代碼。

關鍵是多個安裝包可以有相同的升級代碼。如果第一次調用這個函數返回一個包代碼,那麼你可以跳過檢查並相應地採取行動。

相關問題