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?

War es hilfreich?

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().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top