这个问题是关于我正在编写的一个安装/卸载框架。对于卸载,我使用以下机制: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. /X { GUID },其中GUID是在注册表配置单元的卸载位置生成的注册表项: msiexec
对于其中一个软件,当我安装Microsoft Visual C++ 2008 SP1 Redistributable时,它会在XP中生成GUID {9A25302D-30C0-39D9-BD6F-21E6EC160475}。
但是,在Windows 7中,同一软件会生成GUID {1F1C2DFC-2D24-3E06-BCB8-725134ADF989}。
如果我在XP和Windows7中卸载并重新安装该软件,我会一次又一次地得到上面提到的相同的GUID。
那么,为什么XP和Windows 7的GUID会有所不同呢?我能否确保它在给定的操作系统上是相同的(即,对于VC++ 2008 SP1 Redist,它在XP中始终是{9A25302D-30C0-39D9-BD6F-21E6EC160475} )?Windows用来生成这些GUID的机制是什么(本例中XP和Windows 7不同)。?
还有一些其他软件(如Acrobat、RealVNC等)的GUID在Windows7和XP上是相同的。
发布于 2010-08-27 00:54:39
对于不同版本的windows使用相同安装程序的大多数应用程序在注册表配置单元中将具有相同的guid。
虽然一些应用程序通过查找windows版本来使用条件安装...因此,注册表配置单元中的GUID将不同。这可能会工作,即使两个windows安装程序是相同的,安装程序可以运行不同的设置在主设置中的条件,如windows版本等。
https://stackoverflow.com/questions/2153448
复制相似问题