Question

J'ai une dll enregistrée pour com interop. Par conséquent, sous HKLM \ Software \ Classes \ CLSID [mon guide] \ InprocServer32 [ma version n °] \ Codebase, elle contient le chemin de la dll enregistrée. Cependant, j'ai réorganisé la structure de mes dossiers afin que ce chemin ne soit plus correct. Existe-t-il un moyen de désenregistrer cette dll sans la remettre en place, puis de désenregistrer, puis de supprimer le fichier à nouveau?

Et si je n'ai plus cette dll, ou si j'en ai une avec un numéro de version différent?

Était-ce utile?

La solution

Différents numéros de version (généralement) n’ont aucune importance. Tant que la nouvelle DLL contient tous les GUID apparaissant dans l'ancienne version, elle ne sera pas correctement enregistrée (en utilisant la nouvelle avec regasm, exe). Et bien sûr, le réenregistrement de l'assembly pour COM interop transférera correctement les clés de registre nécessaires.

Autres conseils

Pour autant que je sache, il vous suffit d’enregistrer la DLL à son nouvel emplacement.
Vous pouvez utiliser l'outil MS oleview.exe pour vérifier que les points d’enregistrement COM se trouvent au bon emplacement.

Le problème que nous avons rencontré lors de l’enregistrement de la nouvelle DLL, c’est lorsque sa version est inférieure à celle précédemment enregistrée. Vous vous retrouvez avec ceci dans le registre:

HKCR\MyLib.MyClass\CLSID:(Default)=<my guid>

and 

HKCR\CLSID\<my guid>:Assembly=<string containing version number> 

and 

HKCR\CLSID\<my guid>\InprocServer32\<version number>\ ... more details

Je pense que le moteur d'exécution essaiera de charger l'assembly identifié dans HKCR\CLSID\<my guid>:Assembly, vous voulez donc essayer de désenregistrer celui-ci si possible.

Ce n’est pas une réponse à la question de savoir comment annuler l’enregistrement, mais si vous ne pouvez pas annuler l’enregistrement, j’ai jugé utile d’y entrer et de supprimer la clé du numéro de version que vous n’avez plus, et probablement mettre à jour le fichier. Assembly valeur manuellement si vous osez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top