REGSVR32: le module “xxxxx.dll” échec du chargement de ... dépendant de l'assemblée n'a pas pu être trouvé
Je vais avoir un problème en ce qui concerne l'enregistrement d'un *.dll sous Windows 7 x64.
J'ai essayé de placer l' *.dll dans les deux, C:/Windows/System32 et C:/Windows/SysWOW64 et de tenter d'enregistrer avec "regsvr32 xxxxx.dll" sous une invite de commande élevée. J'ai aussi essayé de l'enregistrer à partir d'un autre répertoire. Il répond avec le message d'erreur suivant:
The module "xxxxx.dll" failed to load.
Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files.
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
Le Journal des événements de notes:
Activation context generation failed for "C:\(path-to-dll)
Dependent Assembly
Microsoft.VC90.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found.
Please use sxstrace.exe for detailed diagnosis
N. B. j'ai installé les versions x86 et x64 de Microsoft Visual C++ 2010 Transmissibles.
Un aparté intéressant, c'est que j'ai tenté d'enregistrer le même *.dll sur mon travail x64 de Windows 7 ordinateur portable et il a enregistré comme prévu. Je suppose que cela se penche plutôt sur le fait que certains types de C++ dépendance est manquant /ATL-ils liés?
Si quelqu'un pouvait aider à me diriger dans la bonne direction ou une remise supplémentaire de la lumière sur la question; je serais plus que reconnaissant.
Ce qui concerne.
Journal système dans l'observateur d'événements de Windows iirc @RennishJoseph
OriginalL'auteur Alfie J. Palmer | 2014-12-04
Vous devez vous connecter pour publier un commentaire.
Ce n'est presque certainement en raison d'une dépendance manquante. Utiliser un outil comme Dependency Walker pour trouver les dépendances nécessaires de la DLL. Ou, si la DLL est fourni par un tiers, de lire leur documentation qui doit spécifier les dépendances nécessaires.
Noter que
Microsoft.VC90.ATL
indique la version 9 de MSVC qui est VS2008. Donc, vous devez installer le MSVC 2008 runtime pour répondre à cette dépendance. Il semble que vous ayez installé le MSVC 2010 runtime par erreur.Enfin, merci de ne pas mettre les fichiers dans le répertoire système. Il appartient au système et ne doivent pas être modifiées par vous.
Le répertoire système est un animal de compagnie bug de l'ours de la mine. D'où mon peu de mini-coup de gueule!!
Je ne peux pas dire que je suis en désaccord! J'ai vu beaucoup de postes dans laquelle les personnes suggèrent dumping aléatoire *.dll est là. Grosse bête noire de la mine.
OriginalL'auteur David Heffernan
Cela indique un manque de Visual C++ runtime module (voir Visual C++ Bibliothèques Partagées (Side-by-Side Assemblées). Il est disponible en tant que programme d'installation redistribuable (cette est sans doute celui dont vous avez besoin;
x86
variante de), vous devez l'installer avant d'enregistrer votre fichier DLL (qui est à son tour dépend de composant manquant).Jetez un oeil à la mise à jour de la réponse, j'ai ajouté le lien de téléchargement qui devrait être utile.
OriginalL'auteur Roman R.
Il y a aussi une autre raison de cet échec. Je viens de tomber sur moi-même. J'ai été en utilisant les méthodes de l'API qui n'a pas de support de Windows 7, comme
PathCchRemoveFileSpec
qui j'ai eu à mettre à jour pour les plus âgés, obsolètePathRemoveFileSpec
. J'ai utilisé Dependency Walker pour vérifier cela en est la cause. Dependency Walker se situe un peu. Si vous regardez ma capture d'écran (ci-dessous), la section rouge montre le vrai problème - les méthodes qu'il n'était pas en mesure de résoudre dans les Dll il a, etc. - mais le bleu montre Dll qui ne sont effectivement pas le problème à tous (ces Dll existe pas). Depuis Dependency Walker est vieux, il se trouve un peu (son jour, il trouve que quelque chose n'est pas disponible de temps à autre), mais généralement, il a également dit la vérité...il vous suffit de faire défiler vers le bas un peu à partir de la partie supérieure gauche du volet comme je l'ai fait. Note à moi-même: veuillez défiler vers le bas la prochaine fois. De toute façon, une fois que j'ai abandonnépathcch.h
, tout a fonctionné sur 7. Heureux de codage.IIRC, si n'importe où dans le DLL il y a une dépendance à une nouvelle fonction de l'API qui n'existe pas encore dans votre version de Windows, il ne sera pas de cette façon.
Je vois ce que tu veux dire, le DLL ne parvient pas à charger avant même de vous inscrire/désinscrire sera appelée. Ce qui est logique, merci
N P !
OriginalL'auteur Alexandru
Je suis soulagé de ce message d'erreur. Dans mon chemin binaire, j'ai eu un
SPACE
. Juste remplacé leSPACE
avecUNDERSCORE(_)
. Il a travaillé pour moi.OriginalL'auteur Solomon Raja Samuel
que j'ai aussi été confronté au même problème lors de l'enregistrement du x.dll par Regsvr32,il est l'une des raisons possibles est que x.dll peut-être unmaged dll.
Pour utiliser unmanged dll fonction d'exportation dans la dot net code, vous devez utiliser
Dllimport
.OriginalL'auteur Ayush joshi