2016-05-27 23 views
5

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?

+2

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. –

+1

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. –

risposta

2

Questo è stato sorprendentemente non chiuso come un duplicato. E odio lasciare domande aperte senza risposta. Quindi risponderò io stesso dicendo che il commento di codestation rimanda a this question che collega a this article che descrive come farlo nella sezione che inizia con testo in grassetto rosso.

Non si dovrebbe andare avanti così. Aumentare la risposta nella domanda collegata.

+1

risolto quello per voi. :-) –

Problemi correlati