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

时间:2015-08-04 14:09:22

标签: c++ visual-studio-2015

直到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的应用程序本地部署。”

更新

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

4 个答案:

答案 0 :(得分:14)

这对我有用(x86 app)。

使用您的应用从这些位置发送所有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 :(得分:1)

通常,您可以使用依赖性walker来查找依赖dll的列表。 关于visual studio运行时dll,你最关心的是包含Visual Studio特定版本的dll。

答案 2 :(得分:1)

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

  1. 复制“C:\ Program Files \ Windows Kits \ 10 \ Redist \ ucrt \ DLLs \ x86”或“C:\ Program Files(x86)\ Windows Kits \ 10 \ Redist \ ucrt \ DLLs \”中的所有文件x86“(如果它是64位应用程序,则从x64目录复制它们)。如果您正在使用Qt,请将它们复制到windeployqt。
  2. 创建的目录中
  3. 从以下位置复制msvcp140.dll和vcruntime140.dll: < Visual Studio 2015安装目录> \ Microsoft Visual Studio 14.0 \ VC \ redist \ x86 \ Microsoft.VC140.CRT(如果它是64位应用程序,则从x64目录复制它们)。
  4. 一般情况下,我发现您可以执行第1步,并尝试运行您的应用。它会告诉你它丢失的第一个文件,一旦你把它放在应用程序的目录中,它就会告诉你下一个你需要的文件。在我的情况下,它是两个。从我的< Windows> \ System32文件夹中复制类似的文件,例如,没有成功。我发现使用Dependency Walker并尝试满足它表示不成功的依赖关系。

    这使您可以制作一个可在M $ OS上运行的便携式应用程序,与XP一样久;或者为没有vcredist_x86或vcredist_x64但没有管理员权限的用户安装。

    顺便说一句:第一步非常正式。这是在MSDN博客上:Introducing the Universal CRT他们说要复制它们以便在所有M $ OS上运行应用程序。

答案 3 :(得分:0)

this文章第6点所述,现在可以对Universal CRT进行本地部署。为此,您应安装Windows 10 SDK并从C:\Program Files (x86)\Windows Kits\10\Redist\ucrt复制所有二进制文件。