cs_Killan
Messages postés46Date d'inscriptionjeudi 10 janvier 2002StatutMembreDernière intervention 5 février 2010
-
24 mai 2006 à 00:13
cs_Killan
Messages postés46Date d'inscriptionjeudi 10 janvier 2002StatutMembreDernière intervention 5 février 2010
-
25 mai 2006 à 01:52
Bonjour,
J'ai 2 répertoires, un contenant un exe avec les dll nécessaires et un autre avec des fichier dont un plugins dans un sous-rep. celui-ci à besoin d'une dll en + que j'ai placé dans le 2eme répertoire
on a donc :
rep 1:
- l'exe
- des dlls
rep 2:
-batch
-dll
---sous-rep avec le plugin sous forme dll
le batch du rep 2 lance l'exe du rep 1 avec le chemin du rep 2 en argument.
le probleme est que le plugin au chargement ne trouve pas la dll qui est dans le rep 2 (donc ça plante avec une belle exception : + _innerException {"Le fichier ou l'assembly nommé liebesstein ou l'une de ses dépendances, est introuvable." } ) (liebesstein c le nom de la dll)
j'ai pensé qu'il serait p-e possible dynamiquement d'ajouter une chemin d'accès pour que l'application cherche les dll nécessaires là où je lui dit et donc trouver la dll du rep 2 ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 24 mai 2006 à 18:19
Dans le lien que j'ai donné c'est pas la solution de la GAC qui t'intéresse mais le moment ou je parle de la façon de nommer un répertoire pour permettre au chargeur d'assembly de trouver les assemblages et surtout de l'élèment Probing du fichier de configuration ainsi que de l'évènement AssemblyResolve du domaine d'application..
cs_Killan
Messages postés46Date d'inscriptionjeudi 10 janvier 2002StatutMembreDernière intervention 5 février 2010 25 mai 2006 à 01:52
t'es idées sont bonne mais malheureusement ne fonctionnent pas avec ma structure (que je ne peu pas changer d'ailleur)
suite à tes conseils j'ai explorer l'aide sur le comment un assembly est chargé et ses chemins d'accès trouvé et j'ai trouvé une solution à mon probleme mais qui reste propre à mon cas
dans le rep1 j'ai du y placer la dll selon la nomenclature suivante :
d:\rep1\nomdll\nomdll.dll
ça fonctionne mais pas comme j'aurais voulu
note que j'avais essayé ta solution 2 mais liebesstein.dll ne trouvait pas les dll dont elle avait besoin (tout est entremelé mais j'ai pas le choix)
si jamais un jour je trouve je ferai un petit exemple sur le sujet
cs_Killan
Messages postés46Date d'inscriptionjeudi 10 janvier 2002StatutMembreDernière intervention 5 février 2010 24 mai 2006 à 10:12
Je vois plus ou moins, mais si je comprend bien le truc GAC sert de config pour l'application située dans mon répertoire 1 sauf que celui ci ne doit pas savoir que le rep 2 l'appel, du moins ile doit pas avoir de config specifique, doit rester générale.
en fait c'est comme le JRE de java et une application qui l'appelle, je tente de refaire un systeme de framework spécifique, jusque là ça fonctionne bien mais faut que l'application du rep1, grâce à un argument qd il se lance, puisse ajouter dyamiquement un répertoire où chercher des dll supplémentaires.
- le rep 1 est celui contenant grak.exe
- le rep 2 est celui contenant liebesstein.bat
- le plugins est dans le rep2/plugins
- la dll que le plugins à besoin est dans le rep 2 à la racine : liebesstein.dll
le truc est donc de dire quelque part pendant l'exécution de grak.exe que le rep 2 sert aussi à chercher les dll necessaire
si ça n'existe pas alors je mettrais les dll dans le rep de l'exe, mais ça serait dommage
merci à vous,
Killan
Vous n’avez pas trouvé la réponse que vous recherchez ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 25 mai 2006 à 01:45
Je pense que ton arborescence de répertoire est un peu compliquée, le plus simple pour une application c'est d'être contenue toute entière dans un même répertoire avec des sous-répertoires éventuellement.. ou bien partagée avec la GAC. Je te montre les deux solutions qui permettent d'indiquer le chemin au chargeur d'assembly du CLR, j'ai pas testé avec la même arborescence que toi, dl, exe etc.. essaye de voir si ça peut t'aider..
// 1 ) Le fichier *.config
// Le fichier de configuration doit porter le même nom que ton exe ( extension comprise ) + .config
// ex : MonApplication.exe.config