在另一台计算机上运行.exe文件时"Missing MSCVP140.dll"和"Missing VCRUNTIME140.dll"

"Missing MSCVP140.dll" and "Missing VCRUNTIME140.dll" when running an .exe-File on another computer

本文关键字:Missing dll 文件 MSCVP140 VCRUNTIME140 exe 运行 计算机 一台      更新时间:2023-10-16

我在Microsoft Visual Studio C++中制作了一个程序,并为此使用了SFML。我包含了程序所需的正确.dll文件,并将它们复制到"发布"文件夹中。它奏效了。整个程序在我的电脑上运行得很完美,但当我试图在另一台电脑上运行时,它说:Missing "MSVCP140.dll"Missing "VCRUNTIME140.dll

我搜索了这个程序的解决方案,总是听到"转到项目>项目设置>C/C++>代码生成>运行库>切换到多线程(/MT)。我用这个设置编译了这个项目,可执行文件的大小增加了,他们说这很正常,因为不再支持.dll文件了。

但当我用新的.exe再次尝试时,它给了我完全相同的错误消息。如果不在计算机上安装一些.dll文件,还有其他可能解决这个问题吗?

MSDN上对此进行了详细介绍。请参阅Visual C++中的部署

你真的有三个选择:

  • 使用DLL的"集中式"版本。为此,您应该有一个运行VS 2015的VCREDIST_*.EXE包的安装程序,或者如果使用基于MSI的安装,您可以使用提供的MSM文件。

  • 将所需的DLL作为程序的一部分进行复制。这意味着你的安装程序或zip文件或任何有EXE的文件也包括它需要的DLL。如果您想要"复制并运行"式部署,这是最好的选择,但请记住,DLL的所有安全服务现在都是您的问题。

  • 使用静态链接。从安全角度来看,这是最不需要的解决方案,实际上只应用于编写安装程序的特定情况,即安装应用程序的程序必须首先运行。

您尚未指定在目标计算机上运行的Windows版本。VS 2015不支持Windows 7 RTM,因为它不支持,但它支持Windows 7 Service Pack 1以及Windows Vista Service Pack 2、Windows 8.x和Windows 10。

当我们讨论这个主题时,Windows 8.0也不支持。这些用户需要升级到Windows 8.1更新或Windows 10。