Laat me nou toch eens met rust man!
Iedereen die in telekinese gelooft, steek a.u.b. mijn hand op
In .NET is het afaik niet mogelijk om een assembly te unloaden binnen een AppDomain.
Je kan die assembly in een apart AppDomain inladen, en als hij moet herladen worden, het AppDomain unloaden, nieuw maken, DLL inladen.
(Een beetje zoals NUnit ook doet).
Maar, met hetgeen ik uit je TS kan opmaken, snap ik eigenlijk niet goed wat je bedoeld ?
Waarom zou je die DLL moeten opnieuw inladen ? Je hebt toch niets gewijzigd aan de implementatie van je method ofzo ?
Je kan die assembly in een apart AppDomain inladen, en als hij moet herladen worden, het AppDomain unloaden, nieuw maken, DLL inladen.
(Een beetje zoals NUnit ook doet).
Maar, met hetgeen ik uit je TS kan opmaken, snap ik eigenlijk niet goed wat je bedoeld ?
Waarom zou je die DLL moeten opnieuw inladen ? Je hebt toch niets gewijzigd aan de implementatie van je method ofzo ?
https://fgheysels.github.io/
De TAPI driver haalt bepaalde gegevens uit de registry (o.a. de caller) Als ik deze gegevens in mijn applicatie aanpas, ziet de driver dit niet. Ik vermoed dus dat deze ergens gecached worden, en hoop dit middels het reloaden van de DLL te omzeilen.
Ik moet er overigens bij zeggen dat ik Java programmeur ben, en practisch geen ervaring heb met .NET of windows.
Ik moet er overigens bij zeggen dat ik Java programmeur ben, en practisch geen ervaring heb met .NET of windows.
Laat me nou toch eens met rust man!
Iedereen die in telekinese gelooft, steek a.u.b. mijn hand op
Als ik het plaatje hier bekijk, dan denk ik dat je een verkeerd beeld hebt van hoe TAPI werkt. Het is de TAPI server die de registry raadpleegt, dus je kunt de dll unloaden zoveel je wilt, maar dat gaat je niet helpen. Ik vermoed dat je de "TAPISrv" service moet herstarten. Ik weet dat je services kan starten en stoppen met een dos (NET START en NET STOP) commando, maar herstarten kan vziw niet. En omdat bij Vista en ws ook andere OS-en de TAPISrv een dependency heeft met Remote Access Connection Manager, is het simpelweg stoppen van de service en vervolgens weer starten niet voldoende.
Hoe dan ook, je zult nog even verder moeten zoeken
Hoe dan ook, je zult nog even verder moeten zoeken