Lorsqu'on défini des références à d'autres bibiothèques, elles sont par défaut copiées dans le meme rep que l'application (copy local = true) ou appartiennent au GAC.
Il suffit ensuite de les utiliser ds le code avec using namespace;
Cependant, j'aimerais ne PAS les copier en local, mais specifier un chemin relatif, un peu un équivalent à un #include "mylib.dll" en C.
Comment faire ceci en C#?
Idéalement, j'aimerais même pouvoir définir personaliser le répertoire ds lequel chercher mes DLL, par ex avec un chemin defini dans le app.config.
en gros, j'ai une app A qui utilise un plugin B qui referencie une DLL C. Lorsque je démarre B, avant le code utilisant C, j'aimerais pouvoir lui dire où chercher C.
Comme la référence à C est inscrite dans le manifest de B (un petit coup de IS Disasembler suffit), je vois pas trop comment je peut faire...
Déjà, si j'avais la possiblité de coder "en dur" le chemin de C dans B, ce serait pas mal.
Vous allez me dire: mais pourquoi diable as tu besoin de ceci? Tout simplement parce que A vérifie toutes les DLL dans le rep de B, et C ne lui plait pas (peut etre parce que A et B sont en .NET 2.0 alors que C est en 1.1), donc j'ai besoin de définir C en dehors.
A part ce problème de déploiement, je sais déjà que B+C fonctionnent bien ensemble (test avec une programme standalone indépendant de A).
Avez vous des idées?
NB: mettre C ds le GAC n'est pas une option envisageable.
EDIT: sous VS2005, ds les propritétés d'un project, on peut spécifier des "Reference Paths". Est ce accessible et modifiable ds le code?
http://msdn2.microsoft.com/en-us/lib...7c(VS.80).aspx
Cela semble interessant, mais cela ne marche pas!
Si je supprime mes DLL du rep local, mon programme ne les trouve pas alors qu'elles sont bien ds les ReferencePaths...
Partager