Visiblement tu compiles ton plugin avec le source de l'attribute, puis tu recompiles le programme qui cherche les plugins avec ce même source... je me trompes ?
Donc du coup chacun a sa version de la définition, et malgrès le partage de source, le CLR (Common Langage Runtime, autrement dit l'environnement d'exécution, plus comunément appelé machine virtuelle, qui se lance avec la commande mono) voit 2 versions différentes (ils ont chacuns un numéro de version, etc.)
Ce qu'il faut faire dans ton cas précis :
compiler dans une dll tout ce qui doit être "partagé", autrement dit ce qui doit être connu des plugins et du gestionnaire de plugin, cad en gros les def d'attributes, les interfaces, les classes manipulables par les plugins, etc.
mcs -
ensuite tu compiles un plugin comme ceci :
mcs -target:library monPlugin.cs -r:MonAppliQuiContientLesDefs.dll
les def d'attributs sont dans MonAppliQuiContientLesDefs.dll.
Tu peux également y mettres ton gestionnaire de plugin, celui qui les charges, mais tu peux aussi mettre ton gestionnaire à part. Il se compilera alors de la même façon :
mcs -target:library monGestionnaire.cs -r:MonAppliQuiContientLesDefs.dll
ou dans une application :
mcs monAppli.cs -r:MonAppliQuiContientLesDefs.dll
en espérant que ca marche mieux maintenant :-)
Si ca marche toujours pas tu peux me mailer si tu veux.
[^] # Re: chezmoicamarche.org
Posté par TImaniac (site web personnel) . En réponse au message Custom attributes: le retour :-(. Évalué à 2.
Visiblement tu compiles ton plugin avec le source de l'attribute, puis tu recompiles le programme qui cherche les plugins avec ce même source... je me trompes ?
Donc du coup chacun a sa version de la définition, et malgrès le partage de source, le CLR (Common Langage Runtime, autrement dit l'environnement d'exécution, plus comunément appelé machine virtuelle, qui se lance avec la commande mono) voit 2 versions différentes (ils ont chacuns un numéro de version, etc.)
Ce qu'il faut faire dans ton cas précis :
compiler dans une dll tout ce qui doit être "partagé", autrement dit ce qui doit être connu des plugins et du gestionnaire de plugin, cad en gros les def d'attributes, les interfaces, les classes manipulables par les plugins, etc.
mcs -
ensuite tu compiles un plugin comme ceci :
mcs -target:library monPlugin.cs -r:MonAppliQuiContientLesDefs.dll
les def d'attributs sont dans MonAppliQuiContientLesDefs.dll.
Tu peux également y mettres ton gestionnaire de plugin, celui qui les charges, mais tu peux aussi mettre ton gestionnaire à part. Il se compilera alors de la même façon :
mcs -target:library monGestionnaire.cs -r:MonAppliQuiContientLesDefs.dll
ou dans une application :
mcs monAppli.cs -r:MonAppliQuiContientLesDefs.dll
en espérant que ca marche mieux maintenant :-)
Si ca marche toujours pas tu peux me mailer si tu veux.