C++ visualc&x2B+;2015可再发行DLL,用于应用程序本地部署
到Visual Studio 2013为止,您所需要的只是msvcr[version].dll和msvcp[version].dll。 现在他们在2015年改变了DLL。 为了避免redist安装程序,我需要包括什么 编辑: 现在似乎不可能了: “不支持通用CRT的应用程序本地部署。” 更新:C++ visualc&x2B+;2015可再发行DLL,用于应用程序本地部署,c++,visual-studio-2015,C++,Visual Studio 2015,到Visual Studio 2013为止,您所需要的只是msvcr[version].dll和msvcp[version].dll。 现在他们在2015年改变了DLL。 为了避免redist安装程序,我需要包括什么 编辑: 现在似乎不可能了: “不支持通用CRT的应用程序本地部署。” 更新: 上述内容于2015年9月11日更新。现在可以在本地部署应用程序了。通常,您可以使用dependency walker查找依赖DLL的列表。 关于VisualStudio运行时DLL,您最关心的是其中包含
上述内容于2015年9月11日更新。现在可以在本地部署应用程序了。通常,您可以使用dependency walker查找依赖DLL的列表。 关于VisualStudio运行时DLL,您最关心的是其中包含VisualStudio特定版本的DLL 这对我有用(x86应用程序) 将所有DLL从以下位置与您的应用程序一起传送:
- C:\ProgramFiles(x86)\Windows Kits\10\Redist\ucrt\DLL\x86
- C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\redist\x86\Microsoft.VC140.CRT
C:\ProgramFiles(x86)\Windows Kits\10\Redist\ucrt
我自己的所有二进制文件,我需要一个额外的文件来实现这一点。以下是目录,其中一个采用更通用的格式:
顺便说一句:第一步相当正式。这是MSDN博客上的内容:他们说要把它们全部复制下来,让一个应用程序在所有M$OS上运行。看起来就像是在几乎所有人都抱怨过这一点之后(看看STL的评论——它突出显示了)。然而,到目前为止,我还没有找到任何关于这方面的官方文件。MSDN文章尚未更新。
redist
目录不包括ucrtbase.dll
,它位于system32
中(正如他们最初所说)。好的,您需要查看这里:。寻找詹姆斯·麦克内利斯的第一条评论。我能够将一个为x86编译的简单应用程序部署到一个从未安装过2015年可再发行版本的Win32 8.1 32位系统上。如果您仍然需要,我可以写一个完整的答案。由于某些原因,Dependency walker不会将ucrtbase.dll显示为依赖项。无论您是否在依赖项中看到它,都应始终将其包含在应用程序本地分发中。