【问题标题】:What Visual C++ Runtimes are users likely to have installed?用户可能安装了哪些 Visual C++ 运行时?
【发布时间】:2011-05-09 09:56:28
【问题描述】:

用户可能安装了哪些 Visual C++ 运行时?

更新:这个问题更像是“部署基于 Internet 的应用程序的最佳方式是什么,用 C++ 编写。这需要 Microsoft Visual C++ 运行时。”

【问题讨论】:

  • 我不知道这个问题是否有明确的答案,因为我相信所包含的内容会根据操作系统的 SP 级别发生变化,或者甚至可能比这更频繁。而且我知道您已经说过“完全修补”,但这会使问题感到困惑-如果它确实是“完全修补”,那是否意味着您的问题的答案是“当前版本是什么”? (我相信 VC++ redis 经常作为可选更新提供)

标签: windows visual-studio visual-c++ runtime msvcrt


【解决方案1】:

我不认为 Microsoft 对安装操作系统时可用的运行时间做出任何保证。它更多的是一种副作用,包括使用特定运行时间构建的应用程序。

如果您需要特定的 C++ 运行时,则需要自行安装。如果您正在构建 MSI 安装,Visual Studio 将安装所需的合并模块。如果没有,您可以从 Microsoft download the run time 获取。

如果您希望仅通过复制单个 EXE 来进行安装,则静态链接到运行时。运行时将内置到您的 EXE 中,不会有外部依赖。

编辑:另见this answer -> Microsoft 明确不保证任何版本的 C++ 运行时都将安装在 Windows 上。

【讨论】:

    【解决方案2】:

    这个答案很重要,因为基于 C++ 的应用程序需要互联网部署


    我发现了以下内容:

    • 任何 C++ 运行时都不会提供全新的 Windows 安装(msvcrt.dll 除外)
    • Windows XP 及更高版本附带 .NET 框架运行时(不适合)
    • C++ 运行时可再发行组件的下载量很小(每个 1-4MB)
    • 自动更新不会安装任何 C++ 运行时。
    • 安装运行时时。只要启用了 Microsoft Update 并使用可再发行安装程序进行部署,Windows 就会处理安全补丁。
    • Internet 部署:您的安装程序(静态链接)应检测运行时的存在并下载(如果尚未安装)。 您还可以使用使用 VC 6 运行时的 gcc-mingw32 编译器。这种方法需要互联网连接。
    • 大多数主要应用程序似乎都静态链接。但有些(例如 Mozilla Firefox)将自定义运行时分发为 DLL。

    微软应该开始在他们的操作系统中包含 C++ 运行时,就像他们为 .NET 所做的那样

    【讨论】:

      【解决方案3】:

      如果它是可再分发的,那么它打算在安装程序中再分发。我会将它作为“如果不存在则安装”项目包含在您的安装程序中。

      至于你问的具体问题,你试过微软网站吗?可能需要一些搜索,但它应该在那里。

      【讨论】:

      • Express Edition 似乎包含一个redist.txt,它与其他版本附带的几乎相同。许可协议明确规定 redist.txt 中列出的(对象形式)文件是可分发的。
      猜你喜欢
      • 2013-02-20
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多