web-dev-qa-db-fra.com

C # manquant msvcr100.dll

Je développe une application qui exécute une autre application et j'ai reçu cette erreur:

le programme ne peut pas démarrer car msvcr100.dll manque à votre ordinateur.

avec mon application C #, puis-je résoudre ce problème en copiant ce fichier .dll dans Windows/System32 Dossier? Ou existe une autre méthode pour faire cela?

20
CeccoCQ

Ces liens ci-dessous pointent sur les téléchargements appropriés pour l'installateur MSVCRT100. Ceci est probablement ce que vous voulez que vos clients fonctionnent avant d'installer votre application. Cela installera correctement les DLL MSVCRT dans le répertoire approprié de sorte que toutes les applications puissent l'utiliser.

Microsoft Visual C++ 2010 Package redistribuable (X86) (probablement ce dont vous avez besoin pour OS 32 bits et 64 bits)

Microsoft Visual C++ 2010 Package redistribuable (X64) (uniquement si votre application elle-même est 64 bits)

Si vous souhaitez réellement installer les dlls MSVCRT100 via un module de fusion dans votre propre MSI - vous pouvez relier votre MSI aux MSMS qui se trouvent dans la version X86 dans la version x86 Vos "C:\Program Files\Fichiers communs\Modules de fusion" Directory "( En supposant que vous avez installé Visual Studio 2010).

C:\Program Files (x86)\Common Files\Merge Modules>dir *CRT*.msm
 Volume in drive C has no label.
 Volume Serial Number is 60A4-1718

 Directory of C:\Program Files (x86)\Common Files\Merge Modules

04/22/2011  01:18 PM           584,192 Microsoft_VC100_CRT_x64.msm
04/22/2011  01:41 PM           571,904 Microsoft_VC100_CRT_x86.msm  <-- This is likely the MSM you want if your app is 32-bit.
04/22/2011  01:14 PM           847,360 Microsoft_VC100_DebugCRT_x64.msm
04/22/2011  01:39 PM           801,792 Microsoft_VC100_DebugCRT_x86.msm

Deux autres alternatives: au lieu de copier msvcrt100.dll dans un répertoire système, copiez-le dans le répertoire de l'application EXE que vous essayez de lancer qui dépend de cette DLL. Ce n'est pas recommandé, mais n'exécutera pas le risque de casser d'autres applications.

Une autre alternative. Si vous avez réellement le code source à l'EXE que vous essayez de lancer, vous pouvez contourner complètement tout ce bruit "d'installer msvcrt100.dll" en le liant statilement. Dans Visual Studio, c'est l'option de la boîte de dialogue de propérissage du projet sous C/C++ (dans l'onglet Génération de code). Changer "Library d'exécution" de "DLL multi-thread" à "multi-filetés". Cela ajoute le commutateur de compilateur/mt.

30
selbie

Quel que soit le programme que vous essayez de démarrer doit d'abord être correctement installé. MSVCR100.DLL est l'une des DLL qui doivent être déployées pour des programmes écrits en C ou C++ avec VS2010. Il est simple avec un projet de configuration et de déploiement ou en construisant le programme avec l'option/MT. Contactez le propriétaire du programme pour obtenir de l'aide.

5
Hans Passant

ce qui manque, c'est le temps d'exécution Visual C++.

démarrez-vous une application C++ à partir de votre code C #? Si tel est le cas, assurez-vous que le temps d'exécution approprié est disponible sur les machines clientes.

2
Davide Piras

Vous devriez pouvoir résoudre ce problème en la copiant et en l'enregistrant (avec la ligne de commande: regsvr32 "dllname") ou vous pouvez l'envoyer avec votre exécutable et fonctionner

AVERTISSEMENT: Veuillez consulter l'article suivant avant d'inclure le fichier avec votre logiciel ... http://msdn.microsoft.com/en-us/library/ms235299.aspx

Je ne prends aucune responsabilité pour vos actions

1
musefan