Enregistrement DLL .NET dans la base de registre

DavidSPIN Messages postés 7 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 2 juin 2010 - 1 juin 2010 à 17:59
DavidSPIN Messages postés 7 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 2 juin 2010 - 2 juin 2010 à 10:40
Bonjour à tous,

J'ai un soucis au niveau de l'enregistrement de ma DLL compilé en VB.NET (VBExpress 2008).
L'erreur ne vient pas de l'enregistrement en lui-même mais de l'appel de celle-ci dans un script VBS. Voici le scénario :
Tout d'abord, j'ai coché l'option "Rendre l'assembly visible par COM" de mon projet pour pouvoir enregistrer ma dll dans le registre windows.
Ensuite lorsque je génère et que j'enregistre cette dll générée via une commande regasm.exe et que je l'appelle dans mon script VBS, tout fonctionne correctement.
Par contre cela ne fonctionne plus lorsque je copie cette DLL dans un autre répertoire ou un autre poste et que je fais un regasm.exe de cette DLL copiée. L'appel dans le VBS ne fonctionne plus.
Avez-vous une idée d'où peut provenir cette erreur ? Y'a-t-il une protection de la DLL originale ? Ou une option à définir dans VBExpress 2008 ?
Merci de votre aide,

cordialement

David

2 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
1 juin 2010 à 19:56
Protection ou option je ne pense pas...

Que te retourne l'enregistrement de ta DLL ?

Essaye en générant un fichier .Reg pour voir si ce n'est pas le chemin d'accès de ta librairie qui pose des problèmes.

regasm TaDLL.dll /regfile:TaDLL.reg

Puis ouvre ce fichier pour voir les clés générés.

Attention aux chemin d'accès sous Vista/Seven l'UAC n'autorise pas la lecture/écriture dans les répertoires utilisateurs il faut l'exécuter en mode administrateur.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
DavidSPIN Messages postés 7 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 2 juin 2010
2 juin 2010 à 10:40
L'enregistrement de la DLL se passe correctement. J'utilise la commande /codebase et je signe mes DLL.
Lorsque je passe par un fichier Reg d'une DLL copiée, j'obtiens par exemple ceci :

REGEDIT4

[HKEY_CLASSES_ROOT\SPIN.Services.Service]
@="SPIN.Services.Service"

[HKEY_CLASSES_ROOT\SPIN.Services.Service\CLSID]
@="{629A83AD-C02D-3D2B-BA4B-89D0D7F321FD}"

[HKEY_CLASSES_ROOT\CLSID\{629A83AD-C02D-3D2B-BA4B-89D0D7F321FD}]
@="SPIN.Services.Service"

[HKEY_CLASSES_ROOT\CLSID\{629A83AD-C02D-3D2B-BA4B-89D0D7F321FD}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="SPIN.Services.Service"
"Assembly"="Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2b8d3281ae11a46b"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///D:/SPIN Database/Configuration/Smarteam/Scripts/DLLClients/Services.dll"

[HKEY_CLASSES_ROOT\CLSID\{629A83AD-C02D-3D2B-BA4B-89D0D7F321FD}\InprocServer32\1.0.0.0]
"Class"="SPIN.Services.Service"
"Assembly"="Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2b8d3281ae11a46b"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///D:/SPIN Database/Configuration/Smarteam/Scripts/DLLClients/Services.dll"

[HKEY_CLASSES_ROOT\CLSID\{629A83AD-C02D-3D2B-BA4B-89D0D7F321FD}\ProgId]
@="SPIN.Services.Service"

[HKEY_CLASSES_ROOT\CLSID\{629A83AD-C02D-3D2B-BA4B-89D0D7F321FD}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]

De plus je suis sur OS xp.
0
Rejoignez-nous