我使用Visual Studio 2015将C程序编译成32位EXE,动态链接到CRT . 我想允许用户下载并运行此EXE,而无需先运行 VCRedist
二进制文件 . 因此,我似乎需要部署一些DLL "app-locally" .
假设用户的计算机安装了通用CRT(即Windows 10或包含相关Windows Update的早期版本) .
在我的EXE旁边只发送 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x86\Microsoft.VC140.CRT\vcruntime140.dll
是 necessary and sufficient 吗?
如果我使用Visual Studio 2017,情况是否完全相同?
2 回答
如果要避免在目标系统上运行VCRedist,则必须在以下 two 目录中分发 ALL dlls 以及.exe
First :
Second
在编译64位应用程序时,在目录中将'x86'替换为'x64' .
您可能希望静态链接您的依赖项 .
在Visual Studio中实现此目的的步骤是:
打开
Project Properties
选择
C/C++
选择
Code Generation
对于
Runtime Library
,选择Multi-threaded (/MT)
这适用于所有最新版本的Visual Studio . 生成的EXE应该是独立的 .