Visual C++ 构建的 .exe 需要 vcruntime140_1.dll 才能执行,这个要求可以去掉吗?

Visual C++ built .exe requires vcruntime140_1.dll to execute, can this requirement be removed?

我通过 Visual Studio 构建了我的 Visual C++ 项目并将 .exe 移动到另一个新的 Windows 10 安装以执行。然而,执行 exe 需要 vcruntime140_1.dll 存在才能成为 运行.

我知道这可以通过安装 C++ Redistributable 来解决,但我想知道是否可以完全删除此要求?

当更新 运行 时,这不会提供给 Windows 10 安装吗?是否可以针对较旧的 Redistributable,以便我的应用程序可以 运行 在更多计算机上使用而不需要用户下载某些东西?

如果零售 Visual C++ 运行时 (vcruntime*.dll) 是 OS 的一部分,则没有版本。它始终必须是 installed/deployed。参见 Microsoft Docs

VS 2015、VS 2017 和 VS 2019 现在有一个“二进制兼容”的特殊情况,这意味着 VS 2019 CRT 只是同一事物的最新版本。也就是说,添加了一些新的 DLL,以便既支持最新的 C++ 一致性工作,又与使用旧版本 Visual C++ (2015/2017) 构建的程序二进制兼容。再次参见 Microsoft Docs

vcruntime140_1.dll 专门用于 this blog post 中涵盖的新“较小的 x64 异常处理”实现。您可以使用 VS 2019 工具集构建 x64 目标,但使用 /d2FH4- 关闭此功能并删除此特定依赖项。

仍然必须让你的程序的每个用户都安装了 VS 2017 版本或更高版本的 CRT。