Libérer une assembly

Résolu
mathsfin Messages postés 12 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 26 août 2008 - 31 juil. 2008 à 13:10
mathsfin Messages postés 12 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 26 août 2008 - 2 août 2008 à 01:29
Bonjour,


Je voudrais savoir comment on peut libérer une assembly. Le code qui me permet de charger mon assembly est le suivant :

Assembly myassembly = Assembly.LoadFile(mypath);
System.Version version = myassembly.GetName().Version;

En effet j'essaye de récupérer  la version de mon assembly mais cette assembly doit être utilisée par après.
Donc comment faire pour la libérer et s'il y a une alternative pour récupérer la version de l'assembly(ou d'un fichier qcq) sans avoir à la charger?

Merci

2 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
1 août 2008 à 21:41
salut,

si ton assembly doit être utilisé après, tu n'as pas besoin de le décharger...cela dit si tu veux vraiment pouvoir décharger un assembly, il faut que tu crées un AppDomain dans lequel tu instancie une classe à toi (qui dérive de MarshalByrefObject) qui charge et check tes assemblies et remplit une liste avec les informations dont tu as besoin (cette liste doit être composée d'object serializables)...ensuite, tu peux décharger l'AppDomain et tes assemblies seront déchargés...

une chose à noter : ne pas passer une instance d'Assembly d'un AppDomain à un autre, sinon, l'assembly se retrouve chargé dans les deux...

ShareVB
3
mathsfin Messages postés 12 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 26 août 2008
2 août 2008 à 01:29
Bonjour ShareVB,

Merci pour la suggestion en effet la création d'un AppDomain est une solution à mon problème mais c'est trop complexe pour mon cas.

J'ai changé de stratégie: au lieu de charger l'assembly pour avoir la version j'ai utilisé la classe FileVersionInfo pour obtenir la version de l'assembly.

Merci encore
3
Rejoignez-nous