【问题标题】:How do I check if Windows Installer 3.1 or higher is installed?如何检查是否安装了 Windows Installer 3.1 或更高版本?
【发布时间】:2010-09-23 20:42:45
【问题描述】:

我需要知道这一点,因为这是 .NET 3.5 的先决条件,如果我包含 .NET 引导程序,我还应该看看是否需要 Windows Installer 3.1。

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB893803v2

它将检查 Windows Installer 3.1,但我怀疑它不会检查更高版本。 (无法确认或否认)

我应该查看哪个注册表项才能找到此信息?

编辑:我需要在 Inno Setup 中进行检查,这是我用作引导程序的工具,但我不确定如何检查其中的 dll 版本。

【问题讨论】:

  • 哇...这个问题让我获得了著名问题金徽章(10k 浏览量),但仍然只有 1 人支持。应该有另一个徽章:p
  • 欢迎来到安装者的世界。

标签: windows-installer


【解决方案1】:

使用以下注册表路径找到安装程序 msi.dll: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer

值:安装程序位置

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

更新: 上面的方法很旧! 此处记录了检测版本的新方法: http://msdn.microsoft.com/en-us/library/aa368280%28VS.85%29.aspx

【讨论】:

【解决方案2】:

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

【讨论】:

  • 应该如何从 Inno Setup 中解析出来?
  • +1 非常简单的方法来以非编程方式找出确切的版本。谢谢你。
【解决方案3】:

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

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

【讨论】:

  • +1 我使用 sysinternals 的 sigcheck.exe 来检查这个。 sigcheck c:\windows\system32\msi.dll
  • 它是system32 而不是System 32。该目录不必位于名为windows 的目录下。更好的动态结帐,例如使用 %systemroot% 您的 system32 可能在的位置。
【解决方案4】:

如果这在 MSI 文件本身内,您可以检查 VersionMsi 属性。

【讨论】:

    【解决方案5】:

    请检查this link 可能对您有所帮助,因为 适用于我 对于 Windows 7,希望可能适用于其他版本的 windows最好检查 Windows Installer 版本。

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 1970-01-01
      • 2010-11-11
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 2019-11-16
      相关资源
      最近更新 更多