( LLZoli | 2012. 11. 12., h – 16:08 )

Jelenleg úgy van megoldva, hogy a WEBAPP a bin könyvtárba fordul, úgy ahogy a fejlesztőknek szóló PluginDev is. a bin\measurementDlls mappába fordul az egy szem kísérleti pluginom.
Amikor a pluginokat be akarom tölteni akkor légyegében végig szaladok a measurementDlls mappán így:


foreach (string dll in Directory.EnumerateFiles(Server.MapPath("~") + "bin\\MeasurementDLLs", "*.dll", SearchOption.TopDirectoryOnly))

így a dll változóban a teljes elérési útvonal benne lesz. Eddig úgy töltöttem be a dll-eket, és vettem ki belőlük a szükséges osztályokat, hogy


System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom(dll);
foreach (Type type in assembly.GetTypes())
{
//ellenőrzés, type eltárolása
}

Ez szépen is működik csak nem lehet unloadolni az így betöltött DLL-t

De akkor átteszem, hogy a bin könyvtárral legyen egy szinten a plugin mappa

Szerk: áttettem máshová, átírtam az új appdomain path-jait


domaininfo.ApplicationBase = Server.MapPath("~") + "MeasurementDLLs";
domaininfo.PrivateBinPath = Server.MapPath("~") + "MeasurementDLLs";

de a helyzet változatlan.

Szerk2: Mivel a plugin megreferálja a PluginDev dll-t ezért fordításkor a plugin mellé másolódik az is. De próbáltam azt is, hogy betöltöm a plugindevet előtte, de az sem volt neki elég. Továbbra is hiányolja a plugin dll-jét vagy annak valamilyen függőségét betöltéskor, akár byte[]-ként adom át, akár a nevével hivatkozok rá.

Illetve, ha megpróbálok feliratkozi az TypeResolve eseményre akkor a következő Exceptiont kapom:


[System.Runtime.Serialization.SerializationException]
{"Hiba történt a célmetódushoz való kötéskor, mert az aláírás vagy a biztonsági átlátszóság nem felel meg a delegált típusnak."}

Ennyire már nem ismerem a CLR-t, nem tudom, hogy most mit hiányolhat.