[VS 2005] Libérer un assembly après un Assembly.LoadFile

Résolu
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 13 juil. 2007 à 15:38
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011 - 16 juil. 2007 à 10:20
Salut all,
(ATTENTION.NET est tout nouveau pour moi)
Aller une petite question rapide en passant un vendredi après midi
sous Microsoft Visual Studio Macros (du VB .NET après tout) j'ai réalisé une macro me générant automatiquement des SmartTag pour mes contrôles personnels.

pour ce faire je fait un peu de System.Reflection  (donc IMPORTS System.Reflection)
je charge donc mon Assembly (qui est celui de la solution Ouverte lors de l'execution de la macro mais généré) dans une Variable Assembly de la maniere suivante
Dim mAssembly As Assembly = Assembly.LoadFile(_assemblyPath & "\bin\Release\" & _dllName)
 , ----
(Coloration syntaxique automatique par Kenji)

j'effectue ensuite des CreatInstance de mes objets pour parcourir leurs propriétés et créée mon code dynamiquement que j'insère ensuite dans ma solution ouverte.

Mais voila le HIC. une fois la génération du code du samrttag terminée sans problème et ajouté à la solution, IMPOSSIBLE de généré de nouveau ma solution :

Avertissement    1    Impossible de supprimer le fichier "bin\Release\TMA.UI.Controls.dll". L'accès au chemin d'accès 'C:\Documents and Settings\rivet\Mes documents\Visual Studio 2005\Projects\TMA.UI.Controls\TMA.UI.Controls\bin\Release\TMA.UI.Controls.dll' est refusé.    TMA.UI.Controls

conduisant à une Erreur:

Erreur    2    Impossible de copier le fichier "obj\Release\TMA.UI.Controls.dll" vers "bin\Release\TMA.UI.Controls.dll". Le processus ne peut pas accéder au fichier 'bin\Release\TMA.UI.Controls.dll', car il est en cours d'utilisation par un autre processus.    TMA.UI.Controls

je pense que cela vient du LoadFile() et donc de ma macro qui ne libère pas l'accès à l'Assembly.

Est ce que quelqu'un pourrais me dépanner en m'aiguillant SVP.
D'avance merci a vous, et si pas de nouvelles avant 5 heures, bon WE à tous.
@+: Ju£i?n
Pensez: Réponse acceptée

6 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 juil. 2007 à 08:52
Bonjour Julien,


Comme je ne connais rien à VB.Net, je ne fais que te rapporter confusément la réponse confuse (je n'en connais même pas le sens) faite par un copain :
Il me parle de "charger dans un domaine différent et de décharger le dit domaine si tu veux libérér la mémoire"

  A moi, "ça ne me parle pas", mais peut-être qu'à toi, oui ?
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 juil. 2007 à 15:40
Re,
J'ai oublier de préciser que:

- Ce qui me fait penser que cela vient du LoadFile c'est que si je ferme ma solution puis la réouvre, je peux la généré sans souci...

voilà j'espère en tout cas avoir été assez clair.

@+: Ju£i?n
Pensez: Réponse acceptée
0
Utilisateur anonyme
13 juil. 2007 à 16:56
Allons bon, impossible d'ouvrir l'éditeur de marco.
J'ai fait des testes hors marco (vb.net normal), ca fonctionne. 
As-tu mis un mAssembly = Nothing a la fin ?







__________
Kenji

(


Nouveau forum VBA/Office
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 juil. 2007 à 08:04
Salut [auteurdetail.aspx?ID=231472 Charles Racaud],
Merci pour la réponse, mais hélas oui j'ai déjà testé et mAssembly = Nothing ne libère pas l'assembly.

Je vais continuer à chercher. Sais tu si il y a moyen de charger un Assembly pour réflection en mode "Shared"

@+: Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 juil. 2007 à 09:06
Salut,
Merci [auteurdetail.aspx?ID=615490 jmfmarques], pour la réponse je viens effectivement de lire quelque chose dans le même genre sur Google Groups  je vais donc essayer de faire cela et je vous tiens au courant.

@+: Ju£i?n
Pensez: Réponse acceptée
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
16 juil. 2007 à 10:20
ce sujet est assez recurant sur l'irc de codes sources "le dechargement des assembly", une des chose première a savoir est que suivant si la manière de chargement utilisé pour lancé l'assembly "load ou loadassembly" (enfin de tte j'ai oublié le nom exacte mais yen a 2 me semble) tu n'as pas les même droits dessus
de plus il me semble que l'on ne peux pas decharger les assembly autrement qu'en relancant le code (comme dans la plus part des programme (meme si il le masque))
j'en rediscuterai ce soir pour avoir qq complement

TeBeCo
0
Rejoignez-nous