Windows installer 如何检查是否安装了Windows Installer 3.1或更高版本?

Windows installer 如何检查是否安装了Windows Installer 3.1或更高版本?,windows-installer,Windows Installer,我需要知道这一点,因为这是.NET 3.5的预请求,如果我包括.NET引导程序,我还应该看看是否需要Windows Installer 3.1 现在我正在检查注册表项: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB893803v2 这将检查Windows Installer 3.1,但我怀疑它不检查更高版本。(无法确认或否认) 我应该查看哪个注册表项来查找此信息 编辑:我需要在Inno安装程序中检查此项,这是我正

我需要知道这一点,因为这是.NET 3.5的预请求,如果我包括.NET引导程序,我还应该看看是否需要Windows Installer 3.1

现在我正在检查注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB893803v2
这将检查Windows Installer 3.1,但我怀疑它不检查更高版本。(无法确认或否认)

我应该查看哪个注册表项来查找此信息


编辑:我需要在Inno安装程序中检查此项,这是我正在使用的引导程序,我不确定如何检查其中的dll版本。

如果此项位于MSI文件本身内部,您可以检查属性。

使用此注册表路径查找安装程序MSI.dll: HKEY\ U本地\计算机\软件\ Microsoft\Windows\CurrentVersion\Installer

值:InstallerLocation

然后从该文件中获取版本信息

更新: 上面的路很旧! 此处记录了检测版本的新方法:

在“运行”窗口中,键入“msiexec”。将出现一个窗口,在第一行显示Windows Installer版本。

如果要检查系统上的Windows Installer版本,请检查Windows\system 32文件夹中的MSI.DLL版本。


右键单击MSI.DLL,选择属性->转到详细信息选项卡并检查文件版本。

请检查可能对您有帮助,因为已适用于Windows 7,希望可以在其他版本的windows上运行,也可以检查windows Installer版本。

注意64位系统上的重定向。。。定向到哪个msi文件将取决于您的应用程序是运行32位模式还是64位模式。尽管如此,windows installer的32位和64位版本在任何64位系统上都应该相同。至少在win32系统上,这只是位置,msiexec.exe是文件名。右键单击->属性->版本我描述的方式是msdn中记录的官方方式(2008年12月->参见)。他们将最佳实践更新为:哇。。。这个问题让我获得了著名的问题金牌(10k视图),但仍然只有1票。应该还有另外一个标志:pWelcome to the world of installers。应该如何从Inno安装程序解析它?+1以非编程方式查找确切版本的非常简单的方法。谢谢你。+1我使用sysinternals中的sigcheck.exe来检查这个。sigcheck c:\windows\system32\msi.dllIt是
system32
而不是
system32
。而且该目录不必位于名为
windows
的目录下。更好地动态签出,例如在system32所在的位置使用
%systemroot%