繁体   English   中英

用于应用程序本地部署的 Visual C++ 2015 可再发行 DLL

[英]Visual C++ 2015 redistributable DLLs for app-local deployment

在 Visual Studio 2013 之前,您只需要 msvcr[version].dll 和 msvcp[version].dll。 现在他们在 2015 年更改了 DLL。为了避免 redist 安装程序,我需要包含什么?

编辑:

现在似乎不可能了: http : //blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx

“不支持通用 CRT 的应用程序本地部署。”

更新:

以上链接的内容已于 2015 年 9 月 11 日更新。现在可以进行应用程序本地部署。

这对我有用(x86 应用程序)。

使用您的应用程序从这些位置发送所有 dll:

  • C:\\Program Files (x86)\\Windows Kits\\10\\Redist\\ucrt\\DLLs\\x86
  • C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\redist\\x86\\Microsoft.VC140.CRT

我自己,我需要一个额外的文件来实现这一点。 以下是目录,其中一个采用更通用的格式:

  1. 复制“C:\\Program Files\\Windows Kits\\10\\Redist\\ucrt\\DLLs\\x86”或“C:\\Program Files (x86)\\Windows Kits\\10\\Redist\\ucrt\\DLLs\\x86”中的所有文件(如果是 64 位应用程序,则从 x64 目录复制它们)。
  2. 从以下位置复制 msvcp140.dll 和 vcruntime140.dll:<Visual Studio 2015 安装目录>\\Microsoft Visual Studio 14.0\\VC\\redist\\x86\\Microsoft.VC140.CRT(如果是 64 位应用程序,则从 x64 目录复制它们) .

如果您使用 Qt,请将这些文件复制到 Windeployqt 制作的目录中。

总的来说,我发现您只需执行第 1 步,然后尝试运行您的应用即可。 它会告诉你它丢失的第一个文件,一旦你把它放在你的应用程序目录中,它就会告诉你下一个你需要的文件。 就我而言,它是两个。 例如,从我的 <Windows>\\System32 文件夹复制类似的文件没有成功。 我发现使用 Dependency Walker 并尝试满足它表明不成功的依赖项。

这允许您制作一个可在与 XP 一样古老的 M$ 操作系统上运行的便携式应用程序; 或者为没有 vcredist_x86 或 vcredist_x64 的用户安装,他们没有管理员权限。

顺便说一句:第 1 步非常正式。 这是在 MSDN 博客上: 介绍通用 CRT他们说要复制它们,以便应用程序在所有 M$ 操作系统上运行。

一般情况下,您可以使用dependency walker 来查找依赖dll 的列表。 关于 Visual Studio 运行时 dll,您最关心的是其中包含 Visual Studio 特定版本的 dll。

截至6点)提到的这个文章,现在有可能使通用CRT的本地部署。 为此,您应该安装Windows 10 SDK并从C:\\Program Files (x86)\\Windows Kits\\10\\Redist\\ucrt\u003c/code>复制所有二进制C:\\Program Files (x86)\\Windows Kits\\10\\Redist\\ucrt\u003c/code> 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM