首页 文章

我必须携带哪些DLL与我的EXE一起使用Windows 10 Universal CRT?

提问于
浏览
0

我使用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.dllnecessary and sufficient 吗?

如果我使用Visual Studio 2017,情况是否完全相同?

2 回答

  • 0

    如果要避免在目标系统上运行VCRedist,则必须在以下 two 目录中分发 ALL dlls 以及.exe

    First

    (VS2015) C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x86\Microsoft.VC140.CRT  
    (VS2017) C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.15.26706\x86\Microsoft.VC141.CRT
    

    Second

    C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86
    

    在编译64位应用程序时,在目录中将'x86'替换为'x64' .

  • -2

    您可能希望静态链接您的依赖项 .

    在Visual Studio中实现此目的的步骤是:

    • 打开 Project Properties

    • 选择 C/C++

    • 选择 Code Generation

    • 对于 Runtime Library ,选择 Multi-threaded (/MT)

    这适用于所有最新版本的Visual Studio . 生成的EXE应该是独立的 .

相关问题