【问题标题】:Inno Setup how to check if MSVCR100.dll exists on the systemInno Setup 如何检查系统上是否存在 MSVCR100.dll
【发布时间】:2017-02-23 01:57:26
【问题描述】:

我有一个基于 Inno Setup 的安装程序,其中还包含一个 WAMP 安装程序。在某些系统上安装 WAMP 需要installation for Microsoft Visual C++ Redistributables,我的安装程序中也有这些可再发行组件的可执行文件。虽然,我想先检查系统是否已经安装了 MSVCR100.dll,这样我就不需要再启动这些安装程序了。关于如何使用 Inno-Setup 在系统上找到 MSVCR100.dll 的任何方法?

我尝试在 C:\ 中搜索“MSVCR100.dll”,但有很多结果,包括位于 C:\Windows\SysWow64 和 C:\Windows\System32 中的一些结果

注意:我们将只使用 64 位安装的 wAMP,因此我们只需要找到一种方法来定位 64 位可再发行组件。我们现在可以忽略 32 位。

【问题讨论】:

  • "有很多结果,包括一些位于 C:\Windows\SysWow64 和 C:\Windows\System32" - 你现在首先需要什么,如果WAMP 需要 32 位或 64 位可再发行组件。
  • @MartinPrikryl 它是 64 位可再发行组件。我将编辑问题。

标签: visual-c++ inno-setup pascal redistributable msvcr100.dll


【解决方案1】:

无需检测此 .dll 文件,只需再次运行可再发行组件设置文件:

https://blogs.msdn.microsoft.com/astebner/2010/10/20/mailbag-how-to-perform-a-silent-install-of-the-visual-c-2010-redistributable-packages/

运行此设置两次不会损害机器 - 如果已安装可再发行组件,则不会发生任何不良情况。

【讨论】:

【解决方案2】:

检查C:\Windows\System32 中是否有MSVCR100.dll 的副本。

由于 Inno Setup 是 32 位应用程序,因此您实际上需要检查 C:\Windows\sysnative。对于 32 位应用程序,C:\Windows\System32 被重定向到 C:\Windows\SysWow64

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多