Libs aus Unterordner laden

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Linkai.

    Libs aus Unterordner laden

    Hallo liebe Community,

    ich versuche seit knapp einer Stunde einen Thread im Netz zu finden, der mir gezeigt hat wie es ging aber ich find ihn einfach nicht mehr -.-..

    Ich habe externe Libs in mein Projekt eingebunden. Nun wird eine Kopie derer in das Programmverzeichnis kopiert. Soweit so gut.
    Nun möchte ich, um die Ordnung im Ordner zu bewahren, einen Ordner bin oder libs erstellen und die Libs da rein kopieren.
    Wenn ich dies tue findet das Programm diese natürlich nicht mehr.

    Ich wusste mal dass man in eine Datei was eintragen musste, um dem Programm mitzuteilen dass es in den eingetragenen Ordnern ebenfalls danach suchen soll.
    Ich weiß nur nicht mehr was und wohin damit ?(
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:
    An der AppDomain gibts ein Event welches AssemblyResolve heißt. Dieses wird gefeuert wenn eine Abhängigkeit nicht gefunden werden konnte, dort kannst du dann deine Assemblies manuell laden.

    codeproject.com/Articles/31067…ssemblyResolve-Event-Tips
    oder du schaust hier:
    StartupPath von DLLs ändern
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Ich danke euch für die Tipps, allerdings nicht das was ich meinte.
    Es ging dabei um die XML file im Debugordner (projektname.xml)

    Dort gabs einen 2-3 Zeiler zum einfügen und dann hats direkt geklappt ...
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:
    Assembly Resolve ist da auch (fast) ein 3 Zeiler?

    C#-Quellcode

    1. private Assembly ResolveAssembly(object sender, ResolveEventArgs args)
    2. {
    3. string name = new AssemblyName(args.Name).Name;
    4. return Assembly.LoadFrom(Path.Combine(Environment.WorkingDirectory, "Libs", name));
    5. }
    okay, ich bekomms nich hin iwie. Ich habs eingefügt nen, den Pfad angepasst und im Load event nen AddHandler gemacht. beim Debuggen kein problem, er kopiert ja die dateien neu in den Programmordner. wenn ich nun die dateien lösche und die exe ausm debug aufrufe, passiert einfach nichts.

    Ich muss mich oben selber korrigieren, es war nicht die xml im debug sondern die app.config, glaube ich xD
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:
    1. entferne die externen dll-s aus den Referenzen
    2. lege einen Ordner wie z. b. lib, dll, etc. im AppOrdner an
    3. kopiere die externen dll-s in diesen Ordner
    4. referenziere sie aus diesem Ordner
    5. setze copytolocal (o. ähnliches) bei den externen dll-s auf false
    6. im app.config füge diese Zeile hinzu:

    Quellcode

    1. <runtime>
    2. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    3. <probing privatePath="dll"/>
    4. </assemblyBinding>
    5. </runtime>


    wo dll der Ordnername für die externen dll-s ist

    es sollte funktionieren