Versione corta: È possibile eseguire un eseguibile compilato con Visual Studio 2015 senza installare i pacchetti ridistribuibili di Visual C++ e copiare invece le DLL di runtime nel stessa cartella del tuo eseguibile?Esecuzione di un eseguibile Visual Studio 2015 C++ senza installare i pacchetti ridistribuibili di Visual C++
Long Version ...
Dalla metà degli anni 1990 ho scritto piccoli programmi utilizzando Visual C++ e poi Visual Studio. Fino a Visual Studio 2013 sono sempre stato in grado di eseguire questi programmi su qualsiasi host di Windows a patto che mettessi msvcpXXX.dll e msvcrXXX.dll nella stessa directory. Non ho mai avuto bisogno di installare i pacchetti ridistribuibili di Visual C++.
Ora con Visual Studio 2015 sembra non funzionare più. Prima non c'è msvcrXXX.dll. Così ho copiato msvcp140.dll e altre tre DLL che ho trovato nella cartella di Visual Studio C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ VC \ redist \ x64 \ Microsoft.VC140.CRT (concrt140.dll, vccorlib140.dll , vcruntime140.dll). Ancora non funziona.
Guardare il file depend.exe mi fa pensare che ci siano molte dipendenze che non sono state risolte in queste DLL. Confesso di essere stato un po 'sopraffatto e di non aver continuato a scavare da solo per capire ogni DLL di cui ho bisogno per soddisfare le dipendenze. Ma ha iniziato a sentirsi molto hacky, in quanto molti di essi sono stati installati in C: \ Windows e non presenti nelle cartelle ridistribuibili di Visual Studio.
In ogni caso, qualcuno può aiutare?
Che dire di [questa domanda] (http://stackoverflow.com/q/31811597/3962537)? O forse collegare staticamente al runtime? Personalmente uso solo la ridistribuibile, è molto meno fastidio. –
Il collegamento statico ha funzionato su host Windows 10 e 2012. Ma sul mio Windows 2008 host non sarebbe avviato a causa di api-ms-win-crt-runtime-l1-1-0.dll mancante. Sembra che la domanda a cui ti sei collegato possa rispondere a questa domanda. –