Ich habe ein, wie ich hoffe, recht einfaches Problem:
Hauptdatei.exe:
[highlight=vbnet]
Dim assembly As Reflection.Assembly = Reflection.Assembly.LoadFile("C:\Test\ladmich.dll" )
Dim myProc As Object
Dim myType As Type = assembly.GetType("AssemblyName.MyClass")
Dim myMethod As Reflection.MethodInfo = myType.GetMethod("Start")
Try
myProc = Activator.CreateInstance(myType)
Catch ex As System.Reflection.TargetInvocationException
Throw New SystemException(ex.InnerException.Message, ex.InnerException)
End Try
[/highlight]
Ich lade eine Assembly mit obigem Code, ladmich.dll. In ladmich.dll wiederrum gibt es einen Verweis auf michauch.dll.
Funktioniert wenn:
michauch.dll im Pfad der Hauptanwendung (Hauptdatei.exe) liegt.
Funktioniert nicht wenn:
1) michauch.dll im Verzeichnis von ladmich.dll (C:\Test) liegt.
2) Wenn ein Verweispfad auf C:\Test in der Hauptdatei.exe angelegt wird.
3) Ein Verweispfad auf c:\Test in ladmich.dll angelegt wird
Problem ist jedesmal, dass er michauch.dll angeblich nicht findet. Da das natürlich nur ein Beispiel ist und es sich in Wahrheit um etwa 10 einzelne dll's handelt würde ich nur ungern alle in den Projektpfad schmeißen, also wie bringe ich der Anwendung bei, in einem anderen Verzeichnis nach den für die geladene dll benötigten Verweise zu suchen?
Danke im Voraus!
Hauptdatei.exe:
[highlight=vbnet]
Dim assembly As Reflection.Assembly = Reflection.Assembly.LoadFile("C:\Test\ladmich.dll" )
Dim myProc As Object
Dim myType As Type = assembly.GetType("AssemblyName.MyClass")
Dim myMethod As Reflection.MethodInfo = myType.GetMethod("Start")
Try
myProc = Activator.CreateInstance(myType)
Catch ex As System.Reflection.TargetInvocationException
Throw New SystemException(ex.InnerException.Message, ex.InnerException)
End Try
[/highlight]
Ich lade eine Assembly mit obigem Code, ladmich.dll. In ladmich.dll wiederrum gibt es einen Verweis auf michauch.dll.
Funktioniert wenn:
michauch.dll im Pfad der Hauptanwendung (Hauptdatei.exe) liegt.
Funktioniert nicht wenn:
1) michauch.dll im Verzeichnis von ladmich.dll (C:\Test) liegt.
2) Wenn ein Verweispfad auf C:\Test in der Hauptdatei.exe angelegt wird.
3) Ein Verweispfad auf c:\Test in ladmich.dll angelegt wird
Problem ist jedesmal, dass er michauch.dll angeblich nicht findet. Da das natürlich nur ein Beispiel ist und es sich in Wahrheit um etwa 10 einzelne dll's handelt würde ich nur ungern alle in den Projektpfad schmeißen, also wie bringe ich der Anwendung bei, in einem anderen Verzeichnis nach den für die geladene dll benötigten Verweise zu suchen?
Danke im Voraus!
Comment