OVH Cloud OVH Cloud

AppDomain, stup et DirectoryBase

2 réponses
Avatar
Yaume
Hello,

Comme je n'ai plus de réponse sur ce sujet, je me permet de reposter la
question avec les éléments que j'ai pu déjà obtenir.

Il s'agit donc de charger une assembly (et non l'éxécuter) dans un AppDomain
qui n'est pas celui de mon Exe. Pour ce faire j'ai une classe qui me sert de
proxy et dans laquelle je charge l'assembly désirée. Cette assembly et
représenté à l'orginie par un fichier (chemin et non de fichier) se trouvant
dans un repertoire différent de mon exe. Cela se charge sans problème. Par
contre quand j'essai de charger une de ses assemblies dépendantes, il ne va
pas chercher dans le répertoire de la dll d'origine. Il suffit donc de
spécifier comme DirectoryBase de mon domaine, le chemin de la dll à charger.
Oui mais dans ce cas je ne peut plus créer le proxy (puisque sa classe est
dans mon exe).

Comment faire ?

D'avance merci.

2 réponses

Avatar
Lionel LASKE
Dans AppDomainSetup, en plus du ApplicationBase, il y a une propriété
PrivateBinPath qui permet également de spécifier un répertoire. As-tu essayé
de la renseigner avec le chemin de l'EXE ? Voir sur ce sujet l'article
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp05162002.asp

Lionel.

"Yaume" a écrit dans le message de news:

Hello,

Comme je n'ai plus de réponse sur ce sujet, je me permet de reposter la
question avec les éléments que j'ai pu déjà obtenir.

Il s'agit donc de charger une assembly (et non l'éxécuter) dans un
AppDomain
qui n'est pas celui de mon Exe. Pour ce faire j'ai une classe qui me sert
de
proxy et dans laquelle je charge l'assembly désirée. Cette assembly et
représenté à l'orginie par un fichier (chemin et non de fichier) se
trouvant
dans un repertoire différent de mon exe. Cela se charge sans problème. Par
contre quand j'essai de charger une de ses assemblies dépendantes, il ne
va
pas chercher dans le répertoire de la dll d'origine. Il suffit donc de
spécifier comme DirectoryBase de mon domaine, le chemin de la dll à
charger.
Oui mais dans ce cas je ne peut plus créer le proxy (puisque sa classe est
dans mon exe).

Comment faire ?

D'avance merci.


Avatar
Yaume
Bonjour,
Désolé de ne répondre que maintenant, j'était absent pendant la semaine
dernière.
Alors aprés tests et consultation de la doc, il s'avère que PrivateBinPath
ne semble fonctionner que pour des sous répertoires de ApplicationBase. Ce
qui n'est pas forcément mon cas car je demande à l'utilisateur de
selectionner une dll située n'importe où.

"Lionel LASKE" a écrit :


Dans AppDomainSetup, en plus du ApplicationBase, il y a une propriété
PrivateBinPath qui permet également de spécifier un répertoire. As-tu essayé
de la renseigner avec le chemin de l'EXE ? Voir sur ce sujet l'article
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp05162002.asp

Lionel.

"Yaume" a écrit dans le message de news:

> Hello,
>
> Comme je n'ai plus de réponse sur ce sujet, je me permet de reposter la
> question avec les éléments que j'ai pu déjà obtenir.
>
> Il s'agit donc de charger une assembly (et non l'éxécuter) dans un
> AppDomain
> qui n'est pas celui de mon Exe. Pour ce faire j'ai une classe qui me sert
> de
> proxy et dans laquelle je charge l'assembly désirée. Cette assembly et
> représenté à l'orginie par un fichier (chemin et non de fichier) se
> trouvant
> dans un repertoire différent de mon exe. Cela se charge sans problème. Par
> contre quand j'essai de charger une de ses assemblies dépendantes, il ne
> va
> pas chercher dans le répertoire de la dll d'origine. Il suffit donc de
> spécifier comme DirectoryBase de mon domaine, le chemin de la dll à
> charger.
> Oui mais dans ce cas je ne peut plus créer le proxy (puisque sa classe est
> dans mon exe).
>
> Comment faire ?
>
> D'avance merci.