Wie den ausführbaren Pfad von einer verwalteten DLL erhalten
-
02-07-2019 - |
Frage
Ich habe eine verwaltete DLL (geschrieben in C ++ / CLI), die eine Klasse von einer C # ausführbaren verwendet wird, enthält. Im Konstruktor der Klasse, ich brauche Zugriff auf den vollständigen Pfad der ausführbaren Datei erhalten Verweis auf die DLL. In der eigentlichen App weiß ich, dass ich das Anwendungsobjekt, dies zu tun können, aber wie kann ich es aus einer verwalteten DLL?
Lösung
Assembly.GetCallingAssembly()
oder
Assembly.GetExecutingAssembly()
oder
Assembly.GetEntryAssembly()
Je nach Bedarf.
Dann nutzen Ort oder Code-Basis-Eigenschaft (Ich erinnere mich nie welche).
Andere Tipps
@leppie: Danke - das war der Zeiger ich brauchte.
Für die Zukunft, in C ++ / CLI ist dies die tatsächliche Syntax, die funktioniert:
String^ appPathString = Assembly::GetEntryAssembly()->Location;
GetExecutingAssembly()
vorgesehen, um den Namen der DLL
GetCallingAssembly()
kehrte so etwas wie System.Windows.Forms
GetEntryAssembly
zurück den vollständigen Pfad, ähnlich unter Win32 GetModulePath()
.