注意
你是否想要下载某个 Visual C++ 运行时文件? 转到 最新支持的 Visual C++ 可再发行组件下载 页。
可再分发文件和许可文档
Visual C++ 运行时可再发行包、合并模块和单个二进制文件的分发仅限于许可Visual Studio用户,并且受Microsoft 软件许可条款的约束。
部署应用程序时,还必须部署支持该应用程序所需的文件。 如果Microsoft提供这些文件中的任何一个,请检查是否允许重新分发这些文件。 可以在 IDE 中找到指向Visual Studio许可条款的链接。 在 About Microsoft Visual Studio 对话框中,选择 License 条款链接。 您还可以从 Visual Studio License Directory 下载相关的 Microsoft 软件许可条款和许可证。
若要查看在 Visual Studio 2022 Microsoft 软件许可条款的“可分发代码”部分中引用的“REDIST 列表”,请参阅 Microsoft Visual Studio 2022 的可分发代码文件。
若要查看在 Microsoft Visual Studio 2019 软件许可条款的“可分发代码”部分中引用的“REDIST 列表”,请参阅 Microsoft Visual Studio 2019 的可分发代码文件。
若要查看在 Visual Studio 2017 Microsoft 软件许可条款的“可分发代码”部分中引用的“REDIST 列表”,请参阅 Microsoft Visual Studio 2017 的可分发代码文件
若要查看在 Visual Studio 2015 的 Microsoft 软件许可条款的“可分发代码”部分中引用的“REDIST 列表”,请参阅 Microsoft Visual Studio 2015 的可分发代码文件。
有关可再发行文件的详细信息,请参阅确定要重新分发的动态链接库和部署示例。
找到可再发行文件
若要部署可再发行文件,可以使用Visual Studio安装的可再发行组件包。 在自 2017 年以来的 Visual Studio 版本中,这些文件命名为 vc_redist.arm64.exe、vc_redist.x64.exe 和 vc_redist.x86.exe。 在 2015、2017 和 2019 Visual Studio 中,它们也以名称 vcredist_x86.exe、vcredist_x64.exe 和 (2015) vcredist_arm.exe提供。
查找可再发行文件的最简单方法是使用在开发人员命令提示符中设置的环境变量。 在 Visual Studio 2022 中,可再发行文件位于 %VCINSTALLDIR%Redist\MSVC\v143 文件夹中。 在最新版本的 Visual Studio 2019 中,可以在 %VCINSTALLDIR%Redist\MSVC\v142 文件夹中找到可再发行文件。 在 Visual Studio 2017 和 Visual Studio 2019 中,文件也位于 %VCToolsRedistDir% 中。 在 Visual Studio 2015 中,可以在 %VCINSTALLDIR%redist\<locale> 中找到这些文件,其中 <locale> 是可再发行包的区域设置。
在 Visual Studio 2022 和 2019 中,合并模块文件是 Visual Studio 安装程序中一个名为 Visual C++ <version> 可再发行合并模块 的可选安装组件的一部分。 默认情况下,合并模块在 Visual Studio 2017 和 Visual Studio 2015 中作为 C++ 安装的一部分进行安装。 在 Visual Studio 2022 中安装它们时,可以在 %VCINSTALLDIR%Redist\MSVC\v143\MergeModules 中找到可再发行的合并模块。
在最新版本的 Visual Studio 2019 中,可再发行的合并模块位于 %VCINSTALLDIR%Redist\MSVC\v142\MergeModules 中。 在 2019 Visual Studio 和 2017 Visual Studio 中,它们也位于 %VCToolsRedistDir%MergeModules 中。 在 2015 Visual Studio中,它们位于 Program Files [(x86)]\Common Files\Merge Modules 中。
安装可再发行程序包
Visual C++ 可再发行组件包安装并注册所有 Visual C++ 库。 如果使用,请在安装应用程序之前,在目标系统上将其作为先决条件运行。 我们建议你在部署中使用这些包,因为它们能够启用 Visual C++ 库的自动更新。 有关演示如何使用这些包的示例,请参阅 演练:使用 Visual C++ 可再发行组件包部署 Visual C++ 应用程序。
每个 Visual C++ 可再发行程序包都会检查计算机上是否存在较新版本。 如果发现较新版本,则无法安装该软件包。 在 Visual Studio 2015 或更高版本中,可再发行组件包会显示一条错误消息,指出安装程序失败。 如果包使用 /quiet 标志运行,则不会显示错误消息。 在任一情况下,Microsoft安装程序会记录错误,并将错误结果返回到调用方。
在 Visual Studio 2015 及更高版本中,可以通过检查注册表来确定是否安装了较新版本来避免此错误。 当前安装的版本号存储在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\{x86|x64|arm64} 密钥中。
Visual Studio 2015、2017、2019 和 2022 的版本号为 14.0,因为最新的可再发行组件在二进制上与之前从2015年起的版本兼容。 密钥是 arm64, x86或 x64 取决于平台的已安装 vcredist 版本。 仅当您使用 Regedit 查看 x64 平台上已安装的 x86 包版本时,才需要在 Wow6432Node 子项下进行检查。
版本号存储在REG_SZ字符串值Version以及值集MajorMinorBld和RbldREG_DWORD值中。 为了避免在安装时出错,如果当前安装的版本较新,则必须跳过可再发行组件包的安装。
可再发行包的命令行选项
Visual C++ 可再发行程序包支持多个命令行选项。
/?
/h或/help选项显示一个对话框,其中列出了可用选项。 可以指定 /install 安装、/repair 修复;或 /uninstall 卸载可再发行包。
/layout 选项将整个可再发行组件的内容复制到当前目录中。
默认情况下,可再发行组件会安装组件内容,并提示用户输入信息以及是否需要在安装后重新启动。 可以使用以下选项修改此行为:
-
/passive:在可再发行组件安装时显示进度条,但不需要用户进行其他交互。 -
/quiet:不显示用户界面或需要任何用户交互。 请使用/quiet来进行完全无人参与的安装。 -
/norestart:禁止任何重启尝试。 默认情况下,会在%TEMP%中创建一个日志文件。 -
/log filename.txt记录到特定文件。
如果你不是从提升权限的命令提示符运行,则需要响应用户帐户控制提示,以便允许安装程序以管理员权限运行。
此示例命令用于安装 x64 可再发行组件。 它显示安装进度,但不需要用户交互,只需重启:
vc_redist.x64.exe /install /passive /norestart
安装可再发行的合并模块
重要
Visual C++ 可再发行程序包文件的合并模块(.msm 文件)已弃用。 不建议将其用于应用程序部署。 相反,我们建议集中部署 Visual C++ 可再发行程序包。 可再发行包的集中部署使 Microsoft 能够独立维护运行时库文件。 卸载应用不会影响使用中央部署的其他应用程序。
使用可再发行组件包进行中央部署时,不负责跟踪和维护运行时库。 否则,对运行时库文件的更新需要更新和重新部署 .msi 安装程序。 在这样做之前,你的应用可能容易受到 bug 或安全问题的影响。
可再发行合并模块必须包含在用于部署应用程序的Windows安装程序包(或类似的安装包)中。 有关详细信息,请参阅 使用合并模块重新分发。 有关示例,请参阅 演练:使用安装项目部署 Visual C++ 应用程序。
安装单个可再发行程序包
还可以直接在应用程序本地文件夹中安装可再发行程序包 DLL。 应用程序本地文件夹是包含可执行应用程序文件的那个文件夹。 出于服务原因,不建议使用此安装位置。
潜在的运行时错误
如果Windows找不到应用程序所需的可再发行 DLL 之一,它可能会显示类似于此 DLL 的消息:“此应用程序无法启动,因为找不到 library.dll。 重新安装应用程序可能会修复此问题。”
若要解决此类错误,请确保应用程序安装程序正确编译。 验证是否在目标系统上正确部署了可再发行库。 有关详细信息,请参阅 了解 Visual C++ 应用程序的依赖项。
相关内容
-
使用合并模块重新分发 介绍如何使用 Visual C++ 可再发行合并模块将 Visual C++ 运行时库安装为文件夹中的共享 DLL
%windir%\system32\。 - 重新分发 Visual C++ ActiveX 控件 介绍了如何重新分发使用 ActiveX 控件的应用程序。
- Redistribute Microsoft基础类(MFC)库介绍了如何重新分发使用 MFC 的应用程序。
- 重新分发活动模板库 (ATL) 应用程序 介绍如何重新分发使用 ATL 的应用程序。 在 Visual Studio 2012 及更高版本中,不需要 ATL 库。
- 部署示例 链接到演示如何部署 Visual C++ 应用程序的示例。
- 部署桌面应用程序 引入了 Visual C++ 部署概念和技术。
- 最新支持的 Visual C++ 可再发行组件下载 链接,指向最新支持的 Visual C++ 可再发行组件下载。