Hallo,
stimmt war nicht genau genug.
Meine library (myFirstAssembly.dll) wird von der exe file reingeladen.
Meine library verwendet objekte von myAssembly.dll.
Als ich versucht habe mit Assembly.LoadFile die dll zu laden hat das nichts gebracht, da ich die Library beim kompilieren bereits brauche(wo er sie auch findet). Ich arbeite in Framework 2.0 und habe das schlüsselwort dynamic daher nicht zur Verügung. Habe auch leider kein Interface.
Zuerst habe ich versucht die AppDomain zu erweitern, jedoch geht das denke ich nur ein eine Richtung.
Bsp: C:\Program Files\Some Directory\myAssembly.dll
AppDomain: C:\Program Files
AppDomain.AppendPrivatePath("\Some Directory");
Jedoch sieht es bei mir so aus:
Bsp: C:\Program Files\Some Directory\myAssembly.dll
AppDomain: C:\Program Files\Some Other Directory
AppDomain.AppendPrivatePath(?);
Deswegen habe ich versucht den suchpfad der applikation zu erweitern. Dazu habe ich <codebase> verwendet.
Ich habe die exe.config wie folgt erweitert:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="myAssembly" publicKeyToken="null" culture="neutral" /> <codeBase version="1.0.0.0" href="C:\Program Files\Some Directory\myAssembly.dll"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration> |
Somit hat er die dll auch gefunden. Jedoch kam eine andere Exception:
System.IO.FileLoadException:
{"Could not load file or assembly 'MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The private assembly was located outside the appbase directory. (Exception from HRESULT: 0x80131041)":"MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"}
Ich hoffe das ist soweit klar.
vielen dank
Moderiert von
Christian S.: XML-Tags hinzugefügt