2013-10-31 10 views
14

È possibile modificare il file di restributo su msvcr100 in modo che altri computer possano eseguire il programma senza problemi con il file .dll? Se sì, come posso averlo?Visual Studio 2013 msvcr120 a msvcr100

Compilare il programma e altre persone non possono utilizzarlo a causa del file msvcr120.dll mancante. Quindi sarebbe bello se potessi cambiarlo in qualche modo.

È possibile installare Plattformtoolset senza una versione precedente di Visualstudio?

+1

Cosa speri di succedere quando quella macchina non ha installato msvcr100.dll? È semplicemente un po 'probabile che sia presente, evitare di dipendere dalla gentilezza dell'installer di un altro prodotto. E evitare di supporre che sia effettivamente necessario un programma di installazione per farlo per te, basta copiare msvcr120.dll e gli amici nella stessa directory insieme ai propri binari. –

risposta

29

Avete alcune scelte:

  1. Installare VS2010 sulla macchina, e impostare l'opzione Piattaforma Toolset a v100.
  2. Installare Windows SDK v7.0A da here, che DOVREBBE/PU CAN aggiungere una nuova opzione al menu del menu Strumenti piattaforma in VS2013. Ottenere questo per funzionare può essere piuttosto laborioso però. (Raramente ha funzionato per me appena fuori dalla scatola). Nota se usi l'MFC nell'applicazione, questa opzione non è adatta a te: le librerie MFC non sono incluse con questo SDK.
  3. Chiedi agli utenti di installare il pacchetto ridistribuibile C++ Microsoft VS 2013 da here e continuare a prescindere.
  4. Collegamento statico ai runtime VS2013, anziché utilizzare il collegamento dinamico alle DLL di runtime. È possibile impostarlo nell'IDE tramite le impostazioni del progetto sotto C/C++ > Code Generation > RunTime Library > Multi-threaded (/MT) o (/MTd). Tutto il codice necessario verrà compilato nella tua app, che renderà i file più grandi, ma eviterà i problemi che menzioni.
+6

Risolto con 4) all'inizio. Molte grazie! – BennX

+1

@lolando Ho accidentalmente masticato il tuo commento mentre tentavo di votarlo, mi dispiace: in C/C++> Generazione codice> libreria RunTime, hai 4 scelte: Statico/Dinamico e Debug/Rilascio. Il rilascio statico è/MT e Debug statico è/MTd – Baldrick

+1

Grazie mille. Forse aggiungilo alla risposta pure. – BennX

2

In Project > Properties > General, c'è un'impostazione chiamata Platform toolset. Puoi usarlo per cambiare la versione della toolchain di costruzione usata.

screenshot

+1

e significa che Visual Studio 2010 deve anche essere installato sulla macchina. – Benoit

+0

quindi devo effettivamente installare anche il 2010 per ottenere il set di strumenti della piattaforma giusto. o ottengo senza il vs2010 – BennX

1

Una cosa da considerare per quanto riguarda la modifica della platform toolset: cambia il compilatore, in modo da C++ dispone recente di Visual Studio 2010 non verrà compilato. Richiede anche l'installazione dell'altra versione.

Il migliore modo di gestire questo sarebbe dare loro il Visual C++ Redistributable for Visual Studio 2013.

Si potrebbe averli fare da soli o creare un programma di installazione.

+1

O collegamento statico ... – JBentley

+0

@JBentley vero, ma penso che sia più semplice installare solo le DLL necessarie. Fallo una volta e hai finito per questo o per qualsiasi altra applicazione creata. – crashmstr

+1

Direi che dipende dal tuo progetto. Se non ti affidi troppo alle dipendenze esterne, passare ai collegamenti statici è semplicemente una questione di modifica di una singola impostazione nei file di progetto, probabilmente molto più semplice della modifica del processo di creazione per includere la ridistribuibile (richiedere agli utenti di installarla manualmente è di progettazione scadente IMO). – JBentley