1 votes

Impossible d'enregistrer un fichier DLL sur Server 2012

Nous avons un ancien site Web classique ASP que j'essaie d'héberger sur un nouveau serveur 2012. Il utilise une DLL développée en interne en VB6.

J'ai copié le fichier d'installation et il affiche une erreur. J'essaie d'enregistrer manuellement la DLL en utilisant "regsvr32 cheminVersDll\leDll.dll" et il me renvoie une erreur 0x80004005. Google suggère que je devrais exécuter la commande à partir d'une fenêtre d'invite de commandes élevée. Donc je le fais et j'obtiens la même erreur. J'ai également essayé d'exécuter la même commande à partir du répertoire SYSWOW64 et j'obtiens la même erreur.

En cherchant sur Google, je trouve également que cela pourrait provenir de dépendances manquantes. J'ai utilisé Dependency Walker et effectivement, il manquait quelques éléments. J'ai donc découvert que je devais installer les fichiers d'exécution VB6, et activer quelques fonctionnalités et toutes les dépendances sont résolues. J'ai donc essayé de réenregistrer la DLL et cela donne toujours la même erreur.

Des idées? Je sais que c'est une DLL 32 bits sur une machine 64 bits mais elle devrait au moins s'enregistrer.

1voto

Clint Davis Points 219

D'accord, après avoir cherché davantage, j'ai découvert grâce à Dependency Walker que le dll fait référence à l'API-MS-WIN-CORE-SYNCH-L1-1-0.DLL à travers une chaîne d'autres dlls.

Selon ces informations de Microsoft, cela ne semble pas être compatible tel quel. Il semble que je devrais recompiler le DLL afin de faire fonctionner cela en changeant les références.

Solution : je vais créer une machine virtuelle pour cette application héritée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X