web-dev-qa-db-fra.com

Résolution du problème "MSVCP110D.dll est absent de votre ordinateur"

Je suis confronté au problème suivant (assez courant): J'exécute mon programme en mode débogage sous VS2010 et/ou VS2012, mais il se bloque au démarrage en disant:

Le programme ne peut pas démarrer, car MSVCP100D.dll est absent de votre fichier ordinateur. Essayez de réinstaller le programme pour résoudre ce problème.

Maintenant, j'ai trouvé un certain nombre de solutions possibles, mais aucune d'entre elles ne fonctionne pour moi:

  • Compile avec/MTd au lieu de/MDd: en fait, le problème est résolu, mais je n’ai pas le droit de le faire: mon programme fait partie d’un programme plus important et/MD [d] est obligatoire.
  • Installer le package VSist 2010 redistribuable }: cela ne fonctionne pas, car VS 2012 est installé. Ce programme d’installation indique donc: "Une nouvelle version de Microsoft Visual C++ 2010 a été détectée machine."
  • Rechercher, glisser-déposer une version de MSVCP100D.dll dans le bon répertoire: je ne dépose pas de DLL inconnues à des emplacements où elles pourraient interférer avec d'autres éléments.
  • Dernier recours: réinstaller VS2010/VS2012: possible, mais comme cela impliquerait également de réinstaller de nombreux autres packages et plugins dont j'ai besoin, j'aimerais éviter cela si ce n'est pas absolument nécessaire.

Reste-t-il d'autres options?

11
Yellow

Les packages Visual Studio REDIST ne déploient jamais les versions DEBUG des fichiers CRT. C'est par conception.

Avec VS 2012 ou version ultérieure, le moyen le plus simple de déployer les versions DEUBG du CRT consiste à installer le package "Outils de débogage distant" sur vos machines de test.

Pour VS 2012, le dernier package des outils de débogage à distance est ici

Pour VS 2013, le dernier package d'outils de débogage à distance est ici .

Une autre option consiste simplement à utiliser le déploiement local de l’application du DLL (c.-à-d. Le copier dans votre répertoire app). Encore une fois ceci est uniquement à des fins de test. Pour le déploiement réel de votre application, vous devez utiliser les versions non déboguées du tube cathodique.

Toutefois, si cette erreur se produit sur votre ordinateur de développement, vous avez d'autres problèmes, car avec VS 2012 installé, vous devez disposer du DETAG CRT VS 2012 sur cet ordinateur.

UPDATE :: Désolé, je m'attendais à ce que les DLL CRT de débogage soient incluses dans le package d'outils de débogage distant avec les bits du débogueur distant et le périphérique de débogage Direct3D 11. Hélas, ce n'est pas. Voir Préparation d’une machine de test pour exécuter un exécutable de débogage . Vous devez utiliser les MSM dans Program Files (x86) directory in \Common Files\Merge Modules ou copier la DLL côte à côte à partir de Program Files (x86) directory in \Microsoft Visual Studio <version>\VC\redist\Debug_NonRedist\. L’équipe VS a probablement supposé que vous l’auriez déjà fait, mais je leur suggérerais de l’intégrer dans le package d’outils distants.

9
Chuck Walbourn

J'ai eu un problème similaire (le projet réalisé dans VS 2012 mais je courais VS2013) et l'a résolu en:

  1. Ouvrez le projet (ou la solution) dans VS2013 (ou le plus récent).

  2. Ouvrez le menu Projet et sélectionnez l’option «Retargeter le projet» (c’était la première option mais après l’application, cette option a disparu).

  3. Reconstruisez votre solution.

1
Kamran Bigdely

Ceci est une DLL d'exécution de débogage. Si (et UNIQUEMENT si!) Vous souhaitez simplement exécuter la version de débogage de votre propre application sur un système sur lequel Visual Studio n'est pas installé, vous pouvez rechercher les DLL manquantes dans:

  • C:\Windows\System32 (pour les versions 64 bits)
  • C:\Windows\SysWOW64 (pour les versions 32 bits)

Continuez simplement à copier les DLL jusqu'à ce que votre exécutable s'exécute.

Si ce n'est PAS ce que vous essayez de faire, reportez-vous à https://stackoverflow.com/a/27386721/2279059 , qui est la réponse CORRECT, mais moins pratique.

0
Florian Winter

Je suis novice dans openCV et C++ et j'ai eu le même problème avec openCV 2.4.10 avec Visual Studio Express 2013 sur une plate-forme Windows 7 32 bits. Si j'ai créé un programme simple sans utiliser OpenCV, le programme a fonctionné, mais lorsque j'ai utilisé OpenCV, l'erreur DLL manquante s'est produite. 

Ce post a clarifié les choses:

Je suppose que le problème que j'ai eu n'était pas avec mon Visual Studio mais mon OpenCV. OpenCV a été compilé sur une version de visual studio nécessitant MSVCP110.dll. J'aurais pu essayer une autre version d'OpenCV ou compiler OpenCV à nouveau avec VS2013, mais le temps me manquait. Au lieu de cela, j'ai trouvé le fichier dll ailleurs et je l'ai placé dans mon dossier system32 (je ne sais pas si c'est recommandé). Cela a résolu le problème. Cependant, comme @slater l'a mentionné, je ne recommanderai pas de télécharger la dll depuis un site Web externe en raison de problèmes de sécurité.

0
Ruchir