Utilisation d'une DLL externe

Utilisation d'une DLL externe - C#/.NET managed - Programmation

Marsh Posté le 14-04-2010 à 20:26:20    

Bonjour,
je rencontre un soucis dans le développement de mon application.
Je souhaite utiliser dans mon programme la DLL d'un autre programme (dont je ne suis pas l'auteur mais dont je connait le code source).
Cet autre programme peut ou non être installé sur la machine ou tourne le miens.
Je ne sais pas trop comment m'y prendre.
 
J'ai essayé la manip suivante : intégrer la DLL à mon projet, la mettre en référence et l'utiliser avec un "using xxx". L'installateur copie alors la DLL dans le même dossier que mon prog.
Le problème est que l'application plante chez les utilisateurs qui n'ont pas installé l'autre prog (qui normalement enregistre la DLL dans le GAC)
D'autre part il n'est pas souhaitable que j'enregistre cette DLL dans le GAC pour ne pas écraser celle éventuellement présente si la version est supérieure.
 
Quelle est la bonne méthode ?
 
merci

Reply

Marsh Posté le 14-04-2010 à 20:26:20   

Reply

Marsh Posté le 14-04-2010 à 22:54:10    

Comment tu distribues ton programme ? Si tu génères un setup (via les outils de déploiement microsoft ou n'importe quelle solution tierce, il y en a un paquet dont des gratuites) tu peux dire les dépendances à y insérer.
En utilisant des outils comme Xenocode postbuild tu peux même aller plus loin mais c'est excessif dans ton cas.
 
Sinon pour info, meme si ça n'est peut être pas la solution souhaitable dans ton cas, l'une des forces de la GAC est justement la gestion de plusieurs versions d'une même DLL sans risque d'effets de bord : chaque programme accède à la version pour laquelle il a été conçu.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 15-04-2010 à 19:47:17    

salut,
merci pour ta réponse.
J'utilise un setup msi pour l'install.
En fait si j'installe la DLL dans le GAC, et qu'une autre version existe, cela ne supprimera pas l'autre ? et ca ne créera pas de conflit ?

Reply

Marsh Posté le 15-04-2010 à 22:29:21    

Je ne pense pas. Ceci dit si ta DLL est très spécifique et que tu n'as pas d'autre applis à distribuer je suis d'avis de ne pas l'inscrire dans la GAC et la laisser en dépendance locale.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 18-05-2010 à 17:28:20    

on va dire que c'est super crade mais ... ILMerge.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed