Visual Studio - Hvilke DLL (er) skal jeg sende sammen med min EXE for at bruge Windows 10 Universal CRT?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har brugt Visual Studio 2015 til at kompilere et C-program i en 32-bit EXE, som dynamisk linker til CRT. Jeg vil gerne tillade brugere at downloade og køre denne EXE uden at skulle køre en VCRedist binær først. Det synes derfor, jeg skal bruge nogle DLL'er 'app-lokalt'.


Antag, at brugerens maskine har Universal CRT installeret (dvs. enten Windows 10 eller en tidligere version inklusive den relevante Windows Update).


Er det nødvendigt og tilstrækkeligt til kun at sende C:Program Files (x86)Microsoft Visual Studio 14.0VC edistx86Microsoft.VC140.CRTvcruntime140.dll sammen med min EXE?


Er situationen nøjagtig den samme, hvis jeg bruger Visual Studio 2017?

Bedste reference


Du vil sandsynligvis forbinde dine afhængigheder statisk.


Fremgangsmåden for at opnå dette i Visual Studio er:



  1. Åbn Project Properties

  2. Vælg C/C++

  3. Vælg Code Generation

  4. For Runtime Library, vælg Multi-threaded (/MT)



Dette vil fungere på alle nyere versioner af Visual Studio. Den resulterende EXE skal være selvstændig.