2010-01-28 74 views
0

這個問題是關於我寫的安裝/卸載框架。對於卸載我用下面的機制: MSIEXEC/X {GUID}其中GUID是在註冊表配置單元的卸載位置產生的RegistryKey:HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows \ CurrentVersion \卸載。XP和Windows 7安裝過程中是否生成GUID?

對於其中一種軟件,當我安裝Microsoft Visual C++ 2008 SP1可再發行組件時,它會在XP中生成一個GUID {9A25302D-30C0-39D9-BD6F-21E6EC160475}。

但是相同的軟件在Windows 7

產生{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}的GUID如果我卸載該軟件,然後重新安裝在XP和Windows 7我得到上述同樣的GUID一次又一次。

那麼爲什麼GUID爲XP和Windows 7有什麼不同? 我可以肯定,這將是在給定的操作系統相同(即它總是會{9A25302D-30C0-39D9-BD6F-21E6EC160475}以XP VC++ 2008 SP1的Redist。)? Windows用來產生這些GUID(不同的XP和Windows 7在這種情況下)的機制是什麼?

還有一些其他軟件(如Acrobat中,RealVNC的,等等),其中GUID是Windows 7和XP一樣。

+0

你提到在x86的XP和Win 7安裝?或者是在64位上運行的Win7? – BigJoe714 2010-02-16 16:41:56

+0

他們都是32位; – Santhosh 2010-09-09 08:44:35

回答

2

使用相同的設置對於不同版本的Windows的大部分應用都具有相同的註冊表配置單元GUID。

雖然一些應用程序使用,通過查找到Windows版本安裝條件......在結果的GUID會在註冊表配置單元不同。這可能工作,即使這兩個窗口安裝程序是一樣的,安裝人員可通過像windows版本,等條件下運行主安裝程序中不同的設置...