Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

FileLoadException kod dinamickog ucitava assembly-a

[es] :: .NET :: FileLoadException kod dinamickog ucitava assembly-a

[ Pregleda: 2685 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bags

Član broj: 10072
Poruke: 715
*.12.15.tuwien.teleweb.at.



+2 Profil

icon FileLoadException kod dinamickog ucitava assembly-a15.04.2008. u 11:23 - pre 195 meseci
Problem:
Treba da napravil dinamicko ucitavanje assembly-a. I to tako sto program periodicno proverava odredjeni direktorijum,i cim se pojavi novi dll fajl u njemu on ga ucitava,provjeri da li implementira odredjeni interface i pokrece execute metodu.

Moje resenje:
Koristio sam FileSystemWatcher, postavio filtere i sve sto treba.Medjutim posto je isti cesto vracao po nekoliko eventa, ubacio sam dodatni Timer, preko kojeg cekam po sekundu izmedju provjera.
Sve to fino radi osim toga sto kod linije:

Code:

Assembly load = Assembly.LoadFrom(e.FullPath);


dobijam ovaj FileLoadException:
Could not load file or assembly 'file:///d:\plugins\test.dll' or one of its dependencies. The process cannot access the file because it is being used by another process.

Naravno prije ove gornje zaustavim FileSystemWatcher :
Code:

watcher.EnableRaisingEvents = false;                


Da li je imao neko slican problem?


Free advice is seldom cheap.
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-3.sezampro.yu.



+395 Profil

icon Re: FileLoadException kod dinamickog ucitava assembly-a15.04.2008. u 15:50 - pre 195 meseci
Probaj da izbegnes FileSystemWatcher jer mozda (nisam siguran 100%) on drzi jos neke handle-ove od fajlova ..
Alternativa je da koristis timer i u njegovom tick eventu da izlistas sve fajlove (System.IO.Directory) koje se nalaze u plugin direktorijumu i onda da ucitas modul ..

Viva lollapalooza
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.telekom.yu.



+104 Profil

icon Re: FileLoadException kod dinamickog ucitava assembly-a15.04.2008. u 15:58 - pre 195 meseci
FileSystemWatcher reaguje na upisivanje prvog bajta na disk što će reći da u trenutku kad pokušavaš da učitaš assembly on verovatno nije u potpunosti snimljen u folder
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

bags

Član broj: 10072
Poruke: 715
*.12.15.tuwien.teleweb.at.



+2 Profil

icon Re: FileLoadException kod dinamickog ucitava assembly-a15.04.2008. u 16:07 - pre 195 meseci
Obojica ste naravno u pravu.

A da li bi bilo dovoljno da stavim Thread.Sleep() na recimo dvije sekunde prije ucitavanja assembly-a ?
U principu nije problem sa ostatkom aplikacije, a najbrze mi je resenje. :)
Free advice is seldom cheap.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: FileLoadException kod dinamickog ucitava assembly-a15.04.2008. u 16:29 - pre 195 meseci
Osim ako kopiranje tog .dll-a na tu lokaciju ne traje duze od 2sec.
 
Odgovor na temu

bags

Član broj: 10072
Poruke: 715
*.12.15.tuwien.teleweb.at.



+2 Profil

icon Re: FileLoadException kod dinamickog ucitava assembly-a15.04.2008. u 18:40 - pre 195 meseci
Posto su uglavnom fajlovi koji su velicine par stotina kb i kopiraju se lokalno sa hdd ,mislim da nece biti problem.

Hvala na odgovorima.
Free advice is seldom cheap.
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-a-1.sezampro.yu.



+395 Profil

icon Re: FileLoadException kod dinamickog ucitava assembly-a15.04.2008. u 18:43 - pre 195 meseci
Citat:
@bags
U principu nije problem sa ostatkom aplikacije, a najbrze mi je resenje. :)

Nekad "najbrze resenje" ne donosi ni blizu 100% pouzdanosti koda ... :)
Viva lollapalooza
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: FileLoadException kod dinamickog ucitava assembly-a16.04.2008. u 08:26 - pre 195 meseci
Ako ti je vec ok da blokiras thread dok plugin ne bude dostupan, onda ti je mozda bolje resenje da jednostavno udjes u petlju i prvo ti probas da otvoris fajl u exclusive locku, i da pokusavas dok ga ne dobijes sa malim pauzicama izmedju (recimo 100ms). Posle toga zatvori fajl i pozovi Assembly.Load... Tako ces cekati minimalni period vremena.




Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: FileLoadException kod dinamickog ucitava assembly-a

[ Pregleda: 2685 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.