2009-08-16 25 views
4

J'essaie d'enregistrer une DLL COM en utilisant Inno Setup dans un package d'installation que j'ai créé. Lors d'une installation de test sur Vista, je reçois cette erreur:Impossible d'enregistrer la DLL/OCX: RegSvr32 a échoué avec le code de sortie 0xC0000005 avec Inno Setup 5.2.3

Unable to register the DLL/OCX: RegSvr32 failed with exit code 0xC0000005

je clique sur « Ignore » et ma demande semble installer, mais je dois ouvrir une invite de commande (en tant qu'administrateur), puis regsvr32 installer la COM DLL. Y a-t-il un moyen de le faire automatiquement dans Inno Setup?

+0

Bonjour? (grillons chantent) –

Répondre

2

Ne pas utiliser l'auto-inscription (c.-à-regsvr32), Microsoft fournit plus d'informations sur les raisons pour lesquelles la Windows Installer documentation.

Le plus souvent, certaines dépendances que votre application est à la recherche ne sont pas encore présents (à savoir Microsoft DLLs déployé avec votre application) lorsque le processus d'auto-inscription se produit.

Est-ce que InnoSetup peut écrire des entrées de registre? C'est tout ce que regsvr32 accomplit ... vous pouvez utiliser la chaleur de l'outil WiX pour extraire les informations de registre pertinentes que regsvr32 mettrait en place, puis les remettre manuellement au code InnoSetup.

+0

Etes-vous sûr de ça? Inno Setup ne peut pas vraiment utiliser autre chose que 'regsvr32' pour installer une DLL ou OCX, toutes les fonctionnalités de Windows Installer n'aident pas vraiment ici IMO. – mghie

+1

Can not InnoSetup écrit des entrées de registre? C'est tout ce que 'regsvr32' accomplit ... vous pouvez utiliser l'outil WiX' heat' pour extraire les informations de registre pertinentes que 'regsvr32' mettrait en place, puis les remettre manuellement au code InnoSetup. – saschabeaumont

+0

C'est une information intéressante; mettez cela dans votre réponse et je vais voter. Inno Setup peut sûrement écrire dans le registre. Mais je ne pense pas que cela affectera le problème du PO, qui ressemble plus à un problème d'autorisation, auquel cas l'écriture dans le registre échouerait probablement aussi. – mghie

1

0XC0000005 = EXCEPTION_ACCESS_VIOLATION

La DLL est en train de faire quelque chose qui est à l'origine regsvr32 crash.

Questions connexes