Hallo,
Habe ein Programm geschrieben, mit dem ich ein anderes Programm beeinflusse.
Dazu nutze ich DLL's des beeinflußten Programms. Dabei habe ich eine Referenz auf dessen DLL's gesetzt.
Beim kompilieren kopiert die Entwicklungsumgebung die DLL's in das Debug-Verzeichnis und das möchte ich nicht.
Mein Programm soll die DLL aus dem Verzeichnis laden, indem sie bereits liegen. Wie kann ich auf DLL's in anderen Verzeichnissen verweisen?
thx schon mal
SharpDevelop Version : 2.1.0.2429
.NET Version : 2.0.50727.832
Da gibt es zwei Methoden:
A) Über Reflection mit System.Assembly.LoadFrom
B) In dem du dem PrivatePath deiner Anwendung den Ordner mit den Assemblies hinzufügst (dann wird es behandelt, als ob die DLLs im Ausführungsverzeichnis lägen).
<?xml version="1.0" standalone="yes"?>
<configuration>
<configSections>
<runtime>
<assemblyBinding>
<probing privatePath=".;.."/>
</assemblyBinding>
</runtime>
</configuration>
// EDIT: Da war ich zu langsam
Hab ich das richtig verstanden, dass der XML-Code in ein Programmname.config - Datei stehen muss?
Hallo fleija,
so eine config-Datei würde ich eher als Hilfslösung sehen. Assemblies, die von mehreren Anwendungen genutzt werden sollen, gehören in den GAC.
herbivore
meinst du mit mehreren anwendungen auch assemblys?
also ich habe zb das problem das ich dll(assemblies) als plugins habe. diese benutzen andere dlls. lade ich nun mein plugin, so müssen die dlls von denen das plugin abhängig ist im selben ordner liegen. das beduetet, ich lasse alle verwendeten dlls im obersten verzeichnis meiner applikation liegen, erstelle ein config file oder verwende den GAC.
habe ich dich nun richtig verstanden, dass man dann den GAC verwenden soll?
mfg
Zebes
Hallo Zebes,
ja, auch dann würde ich den GAC benutzen.
herbivore