jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
13 juil. 2007 à 15:38
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDerniè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
A voir également:
[VS 2005] Libérer un assembly après un Assembly.LoadFile
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 ?
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 ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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"
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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.
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDerniè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